¿Cómo puedo crear una barra de botones de encabezado o pie de página para mi aplicación de Android?

Muchas aplicaciones populares como Google Maps, Facebook, Foursquare, etc. tienen barras de encabezado y / o pie de página en la mayoría de sus actividades. Estos encabezados suelen incluir botones muy útiles, y me gustaría crear uno para mi aplicación. ¿Alguien sabe cómo se hacen? No he podido encontrar nada hasta ahora.

Aquí hay algunas imágenes de lo que quiero decir: http://www.flickr.com/photos/calebgomer/6262815430 http://www.flickr.com/photos/calebgomer/6262815458

Usando esta manera usted puede hacer su header-footer xml y utilizarlo a cualquier de su activity también usted apenas necesita escribir el código para los controles en cabecera-pie una vez en HeaderFooter.java y puede tener acceso a su proyecto.

Construye tu HederFooter.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:weightSum="10" android:id="@+id/commonlayout" android:background="#FFFFFF"> <LinearLayout android:id="@+id/llheader" android:layout_width="fill_parent" android:layout_height="0dp" android:background="@drawable/bar" android:layout_weight="1"> <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center"> <Button android:id="@+id/Button_HeaderFooterSubscribe" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="2dp" android:layout_centerVertical="true" android:background="@drawable/subscribe" /> <Button android:id="@+id/Button_logout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="2dp" android:layout_centerVertical="true" android:background="@drawable/logout" /> <Button android:id="@+id/Button_playlist" android:layout_marginLeft="2dp" android:layout_width="wrap_content" android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:background="@drawable/tempadd" /> </RelativeLayout> </LinearLayout> <LinearLayout android:id="@+id/lldata" android:layout_weight="8" android:layout_width="fill_parent" android:layout_height="0dp" android:background="#FFFFFF"> </LinearLayout> <LinearLayout android:id="@+id/llfooter" android:layout_weight="1" android:layout_width="fill_parent" android:orientation="horizontal" android:layout_height="0dp" android:visibility="visible" android:background="@drawable/fbg" android:weightSum="5.0" android:gravity="center" android:layout_margin="0dp"> <Button android:id="@+id/home" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1" android:background="@drawable/home" android:textColor="#FFFFFF" android:padding="10px"></Button> <Button android:id="@+id/issue" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1" android:background="@drawable/issue" android:textColor="#FFFFFF" android:padding="10px"></Button> <Button android:id="@+id/browse" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1" android:background="@drawable/browse" android:textColor="#FFFFFF" android:padding="10px"></Button> <Button android:id="@+id/search" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1" android:background="@drawable/search" android:textColor="#FFFFFF" android:padding="10px"></Button> <Button android:layout_height="wrap_content" android:id="@+id/favorite" android:background="@drawable/favorite" android:layout_width="wrap_content" android:layout_weight="1" android:textColor="#FFFFFF" android:padding="10px"></Button> </LinearLayout> </LinearLayout> 

Crear una actividad HeaderFooter.java

 public class HeaderFooter extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.headerfooter); } } 

Ahora extiende la actividad anterior a todas tus otras actividades e infla tu vista particular en el diseño medio del headerfooter.xml

 public class Home extends HeaderFooter { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewGroup vg = (ViewGroup) findViewById(R.id.lldata); ViewGroup.inflate(Home.this, R.layout.home, vg); } } 

Simplemente cree un xml como necesite.

Agregue estos XML a sus otras pantallas usando la etiqueta en sus otros XMLs de la pantalla.

La muestra está aquí.

Puede manejar el botón de clic que necesite en cada actividad.

Espero que esto ayude.

Diseño de diseño Xml con el encabezado, pie de página y body.you tiene que ampliar la actividad principal cada vez, usted tiene que cambiar el cuerpo por inflar el diseño deseado.

Creo que el elemento que te gusta en esos diseños es el hecho de que están usando un FrameLayout para la parte inferior de la pantalla.

Probablemente están haciendo algo como esto:

 <LinearLayout android:orientation="vertical .../> <head layout element> <FrameLayout element> <footer layout element> </LinearLayout> 
  • Mostrar contenido en la barra de herramientas
  • Aplicar filtro de color con xml en ImageView
  • Volver a la actividad principal al presionar el botón del icono de la aplicación
  • Android Support BottomSheetBehavior no puede ser dinámico?
  • Analizar archivo xml utilizando java para - aplicación basada en android
  • Error al inflar el fragmento de clase InflateException Archivo XML binario
  • Trunca automáticamente texto TextView para no superponer otro TextView
  • Error al inflacionar la clase android.widget.CheckBox
  • Unity3D y Android Studio Integration
  • Cómo ver AndroidManifest.xml de archivo APK?
  • Flechas personalizadas sin imagen: Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.