2010-09-25 21 views
20

Mi chiedo come sia possibile creare una barra di pulsanti buttom in Android,barra dei pulsanti in basso in Android

ho letto qualcosa su questa soluzione di interfaccia utente, ci sono tutti i controlli che possono essere utilizzati?

risposta

36

Si può fare qualcosa di simile all'interno di un layout relativo

<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> 
+13

Come si utilizza 'layout_weight' per i pulsanti, è necessario impostare la' layout_width' a 0DP. – aaronsnoswell

+0

I pulsanti nelle barre dei pulsanti sono in genere senza bordi: http://stackoverflow.com/questions/16648768/why-buttons-in-button-bars-should-be-borderless-in-android-api-level-15 – drindt

3

È possibile utilizzare un FrameLayout di mettere qualcosa nel fondo da:

android: layout_gravity = "bottom | center"

Ad esempio:

<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> 
7
<?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> 

ce l'ha dal seguente link bottombar

0

Il modo più semplice è quello di dare il layout lineare costruito in stile e cioè "@android: style/Holo.ButtonBar", o se si è in pre HC poi "@ Android: stile/ButtomBar"

Se vi state chiedendo quali attributi si applica questo stile, eccolo:

<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> 

Nota, non è necessario utilizzare RelativeLayout in questo caso - la sua completamente ridondante ed è più costoso in termini di operazioni di layout c ompared al layout lineare.

0

creo un semplice AndroidBottomMenu View utilizzando visualizzazione personalizzata. E 'semplice e leggero, si può facilmente copia al tuo progetto

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

enter image description here

Problemi correlati