2012-02-17 13 views
20

enter image description hereCómo colocar actionbar Los productos en la Barra de acciones principal y barra inferior

La aplicación de Google+ tiene un diseño donde cuenta con elementos de la 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 elementos en la parte superior e inferior?

+0

sí cómo mostrar el icono de desbordamiento en la parte superior ??? – samirprogrammer

Respuesta

0

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

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

android:showAsAction="ifRoom|withText" 

en los elementos del menú en el XML.

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

+0

Eso no parece correcto. En el ejemplo de Google+, también tienen el icono de desbordamiento en la parte superior. – PolandSpring

+1

@kkshin Esa es una vista personalizada y no la barra de acción dividida predeterminada. – doorstuck

+0

Intenté esto pero va en la barra de acción inferior. – Timmmm

11

no creo que es posible utilizar la Barra de acciones estándar. Al habilitar una ActionBar dividida, ALL acciones aparecerán en la parte inferior de una pantalla estrecha.

La barra inferior en la actividad "crear una publicación" de la aplicación Google+ parece ser una implementación personalizada. Observe que la presión prolongada para revelar la etiqueta de una acción no funciona, y la barra inferior permanece incluso cuando se cambia a orientación horizontal. El elemento de ubicación es un interruptor de palanca que también es un comportamiento no estándar de ActionBar.

26

Espero que mi respuesta no sea demasiado tarde para ti.

  1. Use 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 su 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 :)

+0

¡Me ayudaste mucho, gracias! Pequeño comentario para aquellos que usan ActionBarSherlock lib: puede obtener su objeto de barra de acciones con getSherlock(). GetActionBar(). – lopek

+0

cómo mostrar el menú de flujo superior en la parte superior en lugar de abajo ??? – samirprogrammer

2

que tenía el mismo problema, nada de lo que he encontrado es realmente trabajar porque tenía que hacer frente con el estrecho de la barra de acciones, luego en los dispositivos grandes, los botones se colocaron en la parte superior en lugar de abajo. Así que finalmente lo resolvió mediante la colocación de un "pie" en el diseño principal:

Bottom ActionBar Example

<?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> 
0
<?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 esta ayuda

+0

En ese caso y si usted tiene los derechos, puede hasta votar esa respuesta (si no es necesario hacer un comentario). Sin embargo, si encuentra una forma alternativa de resolver el problema, no dude en compartir. – TocToc

Cuestiones relacionadas