Cómo colocar los elementos de ActionBar en la barra principal de acción y la barra inferior

Introduzca aquí la descripción de la imagen

La aplicación de Google+ tiene un diseño en el que tiene elementos de barra de acción en la barra de acción principal y la parte inferior. Actualmente estoy usando android:uiOptions="splitActionBarWhenNarrow" para colocar elementos en la barra inferior. ¿Cómo puedo colocar los artículos en la parte superior e inferior?

Espero que mi respuesta no es demasiado tarde para usted.

  1. Usa android:uiOptions="splitActionBarWhenNarrow" (esto agrega cosas en la barra inferior).
  2. Cree un nuevo diseño como el siguiente código (este diseño manejará todos sus elementos en la barra superior).

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" > <Switch android:id="@+id/switch1" android:layout_width="wrap_content" android:layout_height="match_parent"/> <ImageButton android:id="@+id/action_starred" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/actionButtonStyle" android:src="@android:drawable/ic_menu_compass" android:onClick="FakeMenu"/> </LinearLayout> 
  3. Pega esto en tu actividad

     ActionBar actionBar = getActionBar(); actionBar.setCustomView(R.layout.actionbar_top); //load your layout actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_CUSTOM); //show it 
  4. Eso es todo 🙂

No creo que sea posible usar el ActionBar estándar. Al activar una ActionBar dividida, TODAS las acciones aparecerán en la parte inferior en una pantalla estrecha.

La barra inferior de la aplicación "crear una publicación" de la aplicación Google+ parece ser una implementación personalizada. Observe que la pulsación larga para revelar la etiqueta de una acción no funciona y la barra inferior permanece incluso cuando cambia a la orientación horizontal. El elemento de ubicación es un conmutador alternativo que también es un comportamiento ActionBar no estándar.

Tuve el mismo problema, nada de lo que encontré realmente funcionaba porque tenía que tratar con la estrecha de la barra de acción, luego en los dispositivos grandes, los botones se colocaron en la parte superior en lugar de la parte inferior. Así que finalmente lo resolví colocando un "pie de página" en el diseño principal:

Ejemplo de ActionBar inferior

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentTop="false" android:layout_above="@+id/footer"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="@dimen/body_padding_large" android:paddingRight="@dimen/body_padding_large" android:paddingTop="@dimen/body_padding_medium" android:paddingBottom="@dimen/body_padding_medium" android:gravity="top"> </LinearLayout> </ScrollView> <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/btn_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Button 1" /> <Button android:id="@+id/btn_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Button 2" /> </LinearLayout> </RelativeLayout> 

La barra inferior se llena cuando tiene más elementos que se pueden mostrar en la barra superior.

En lugar de mostrar el "desbordamiento" de tres puntos los elementos se pondrán en la barra inferior. Recuerde utilizar:

 android:showAsAction="ifRoom|withText" 

En los elementos del menú en XML.

Lea más aquí: http://developer.android.com/guide/topics/ui/actionbar.html#SplitBar

 <?xml version="1.0" encoding="utf-8"?> < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" > <Switch android:id="@+id/switch1" android:layout_width="wrap_content" android:layout_height="match_parent"/> <ImageButton android:id="@+id/action_starred" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/actionButtonStyle" android:src="@android:drawable/ic_menu_compass" android:onClick="FakeMenu"/> </LinearLayout> //Then put these lines of code in your java class or activity ActionBar actionBar = getActionBar(); actionBar.setCustomView(R.layout.actionbar); //load your layout actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_USTOM); //show it 

// espero que esto ayude

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.