2011-06-09 9 views
5

He estado buscando opciones sobre cómo colocar Barra de navegación común para todas las actividades. Aún no puede encontrar la mejor manera de hacerlo. La barra de navegación debe tener un título para la pantalla y un botón para retroceder. O pueden ser dos en algunas actividades.
¿Cuál es la mejor práctica que debo seguir?Barra de navegación común a todas las actividades

Gracias

Respuesta

1

Se puede definir la barra de navegación en la disposición header.xml separada de esta manera:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/header_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <!-- 1px border top --> 
    <ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="1px" 
    android:background="@color/header_border_top" /> 

    <!-- header with text and buttons --> 
    <RelativeLayout 
    android:layout_height="43dp" 
    android:layout_width="fill_parent" 
    android:background="@color/header_background"> 

    <!-- left side --> 
    <LinearLayout 
     android:id="@+id/header_home_button_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" 
     android:layout_alignParentLeft="true"> 

     <!-- home button --> 
     <ImageButton 
     android:id="@+id/header_home_button" 
     android:src="@drawable/header_btn_home" 
     android:onClick="onHomeClick" /> 

    </LinearLayout> 

    <!-- header text --> 
    <TextView 
     android:id="@+id/header_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:text="@string/app_name" 
     android:textSize="20dp" 
     android:textStyle="bold"/> 

    <!-- right side --> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" 
     android:layout_alignParentRight="true"> 

     <!-- back button --> 
     <ImageButton 
     android:id="@+id/header_back_button" 
     android:src="@drawable/header_btn_back" 
     android:onClick="onBackClick" 
     android:visibility="gone" /> 

    </LinearLayout> 

    </RelativeLayout> 

    <!-- 1px border bottom --> 
    <ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="1px" 
    android:background="@color/header_border_bottom" /> 

</LinearLayout> 

Luego incluyen esta cabecera en la disposición de todas sus actividades:

<include 
    layout="@layout/header" /> 

Y asegúrese de que en todas sus clases extender clase padre que tiene los métodos enHomeClick y onBackClick ...

+0

Gracias peceps :) En la respuesta anterior se me ha sugerido que use ActionBar. Tu sugerencia también es útil. Pero cuál es el mejor enfoque para esto. Sugerencia sincera por favor;) –

2

Un amigo mío ha creado un proyecto de código abierto llamado Android Actionbar, suena como que quiere hacer lo que hace ese proyecto. Es un proyecto de biblioteca, por lo que puede usarlo en su aplicación. También hay ejemplos en el sitio.

Esto es lo que parece:

enter image description here

+8

También hay ActionBarSherlock, que utiliza el widget anterior para Android 1.x/2.x y la barra de acción nativa Honeycomb en Android 3.x : http://actionbarsherlock.com/ – CommonsWare

+0

Wao ... esto es muy útil. Muchas gracias Kaj :) –

+0

Tanto ActionBar como el ejemplo de la barra de acciones no se importan en eclipse. ¿Cómo puedo hacer que sea una biblioteca? –

Cuestiones relacionadas