Нижняя панель кнопок в Android - PullRequest
       17

Нижняя панель кнопок в Android

20 голосов
/ 26 сентября 2010

Мне интересно, как можно создать кнопки нижней панели в Android,

Я прочитал кое-что об этом решении пользовательского интерфейса, есть ли какие-либо элементы управления, которые можно использовать?

Ответы [ 6 ]

37 голосов
/ 26 сентября 2010

Вы можете сделать что-то подобное в относительном макете

<LinearLayout android:id="@+id/footer" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:orientation="horizontal"
    android:layout_alignParentBottom="true" style="@android:style/ButtonBar">

    <Button android:id="@+id/saveButton" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:text="@string/menu_done" />

    <Button android:id="@+id/cancelButton" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:text="@string/menu_cancel" />
</LinearLayout>
7 голосов
/ 04 декабря 2011
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
    <LinearLayout
     android:id="@+id/buttonBar"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     style="@android:style/ButtonBar"
     android:gravity="center"
     >
          <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="20sp"
          android:textStyle="bold"
          android:textColor="#FFFFFF"
          android:text="Button Bar"/>   
     </LinearLayout>
</RelativeLayout>

получил по следующей ссылке bottombar

3 голосов
/ 27 сентября 2010

Вы можете использовать FrameLayout, чтобы поместить что-то внизу:

android: layout_gravity = "bottom | center"

Например:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    >
    <ListView
        android:id="@+id/list1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
    <Button
        android:id="@+id/btn_"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        android:text="OK"
        />

</FrameLayout>
0 голосов
/ 07 июля 2017

Я создаю простой AndroidBottomMenu View , используя пользовательский вид. Это просто и легко, вы можете легко скопировать в свой проект

<com.toong.androidbottombar.bottommenu.BottomMenu
    android:id="@+id/bottom_menu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

enter image description here

0 голосов
/ 27 августа 2014

Это обескураженная практика http://developer.android.com/design/patterns/pure-android.html Я был не прав

0 голосов
/ 21 мая 2013

Самый простой способ - придать линейному макету встроенный стиль, а именно "@android: style / Holo.ButtonBar" или, если вы используете предварительную версию HC, тогда "@android: style / ButtomBar"

Если вам интересно, к каким атрибутам относится этот стиль, вот оно:

<style name="Holo.ButtonBar" parent="ButtonBar">
        <item name="android:paddingTop">0dip</item>
        <item name="android:paddingStart">0dip</item>
        <item name="android:paddingEnd">0dip</item>
        <item name="android:paddingBottom">0dip</item>
        <item name="divider">?android:attr/dividerVertical</item>
        <item name="showDividers">middle</item>
        <item name="dividerPadding">12dip</item>
        <item name="background">@null</item>
    </style>

Обратите внимание, что в этом случае вам не нужно использовать RelativeLayout - он полностью избыточен и более затратен с точки зрения операций макета по сравнению с линейным макетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...