2011-10-20 11 views
12

Molte app popolari come Google Maps, Facebook, Foursquare, ecc. Hanno intestazione e/o piè di pagina nella maggior parte delle loro attività. Queste intestazioni spesso includono pulsanti molto utili e Vorrei crearne uno per la mia app. Qualcuno sa come sono fatti? Non sono stato in grado di trovare nulla finora.Come creare una barra dei pulsanti di intestazione o piè di pagina per la mia applicazione Android

Ecco alcune immagini di quello che voglio dire: http://www.flickr.com/photos/calebgomer/6262815430 http://www.flickr.com/photos/calebgomer/6262815458

risposta

14

Usando questo modo è possibile rendere il vostro header-footer xml e utilizzarlo per qualsiasi vostra activity anche solo bisogno di scrivere il codice per i controlli nell'intestazione -footer una volta in HeaderFooter.java e può accedere al tuo progetto.

Costruisci la tua 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> 

quindi creare un HeaderFooter.java Attività

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

ora si estendono sopra l'attività alle vostre tutte le altre attività e gonfiare la visualizzazione in particolare il layout centrale di 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); 
     } 
} 
+1

Questo approccio ha funzionato molto bene, grazie! (L'unico problema è che il piè di pagina ha un divario molto piccolo tra esso e la parte inferiore dello schermo) –

+0

@CalebGomer ho aggiornato xml lo uso e quel problema sarà risolto..setto me se noy – MKJParekh

+1

Che risolto! Grazie ancora per il vostro aiuto. –

2

Basta creare un xml di cui hai bisogno.

Aggiungi questi XML agli altri schermi utilizzando i tag negli altri XML di Screen.

Sample is here.

è possibile gestire il pulsante di scatto di cui hai bisogno in ogni attività.

Spero che questo aiuti.

+0

Ho lavorato su Android prima. Ho delle app funzionanti, vorrei solo che la loro GUI avesse un aspetto migliore. Guarderò quegli esempi e vedrò cosa posso fare. Grazie! –

+0

@Vinay Non basta dare il link questo link è rotto. Si prega di aggiornare il tuo link. – BBdev

0

Disegno Layout Xml con intestazione, piè di pagina e corpo. È necessario estendere l'attività principale ogni volta, è necessario modificare il corpo gonfiando il layout desiderato.

0

Penso che l'elemento che ti piace in questi layout è il fatto che stanno usando un FrameLayout per la parte inferiore del display.

Probabilmente stanno facendo qualcosa di simile:

<LinearLayout android:orientation="vertical 
    .../> 
<head layout element> 
<FrameLayout element> 
<footer layout element> 
</LinearLayout> 
+0

C'è una differenza tra l'utilizzo di un piè di pagina LinearLayout e l'utilizzo di FrameLayout per il piè di pagina? –

+0

Non è il piè di pagina che è il framelayout. È il riquadro del contenuto che è il layout della cornice. Ho modificato la mia risposta per essere più specifica. –

+0

Capisco cosa intendi. Ho cambiato il "corpo" da LinearLayout a FrameLayout ma non ho visto una differenza tra i due. Ci sono vantaggi pratici nell'utilizzo di FrameLayout in questa situazione? –

Problemi correlati