2013-06-05 23 views
25

[UPDATE]Come aggiungere il titolo nel layout del cassetto di navigazione?

ho risolto il problema aggiungendo addHeaderView:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mTitle = mDrawerTitle = getTitle(); 
    mPlanetTitles = getResources().getStringArray(R.array.planets_array); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (ListView) findViewById(R.id.left_drawer); 

    LayoutInflater inflater = getLayoutInflater(); 
    ViewGroup mTop = (ViewGroup)inflater.inflate(R.layout.header_listview_menu, mDrawerList, false); 
    mDrawerList.addHeaderView(mTop, null, false); 

========================== ======

La mia domanda è così semplice!

Mi piacerebbe come aggiungere un titolo in un cassetto di navigazione?

Ho già creato il mio cassetto di navigazione con listview (icona + testo) per ogni articolo.

Grazie mille,

enter image description here

+0

Avete qualche idea su come aggiungere diversi titoli? –

+0

Hai un campione di codice più completo? – karlstackoverflow

+0

Ottima soluzione !!! Grazie. –

risposta

5

mettere un TextView sopra un ListView, e avvolgerlo in una verticale LinearLayout. Dare al vostro ListView android:layout_weight="1" e android:layout_height="0dip"

+0

Che funzionerà se l'intestazione deve essere riparata in alto. Lo screenshot mostra le intestazioni come parte del 'ListView' stesso (vedi la riga" Titolo 2 "). La tua soluzione potrebbe essere ciò che l'OP sta cercando, però. – CommonsWare

+0

Sì, lo ho frainteso. Solo ora ho capito che vuole – Blackbelt

+0

Grazie, ho modificato il post. Problema risolto – wawanopoulos

11

Si potrebbe farlo nello stesso modo come si dovrebbe aggiungere intestazioni in qualsiasi altro ListView, insegnando la vostra ListAdapter per tornare righe di titolo così come righe di dettaglio. A livello basso, questo implica l'override di metodi come getViewTypeCount() e getItemViewType() nel tuo ListAdapter, oltre a getView() conoscere la differenza tra i tipi di riga. In alternativa, utilizzare un'implementazione di alto livello esistente come https://github.com/emilsjolander/StickyListHeaders o http://code.google.com/p/android-amazing-listview/ o uno degli altri trovati durante la ricerca di android listview headers.

+0

Grazie, ho modificato il post. Problema risolto – wawanopoulos

+0

post correlati - http://stackoverflow.com/questions/13590627/android-listview-headers –

0

Forse è un po 'tardi ma penso di avere una soluzione più semplice. Nel layout della tua attività, invece di aggiungere un listView all'interno di DrawerLayout, puoi aggiungere ad esempio un LinearLayout e puoi facilmente aggiungere separatori e righe. Per esempio:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <com.astuetz.viewpager.extensions.PagerSlidingTabStrip 
      android:id="@+id/indicator" 
      android:layout_height="48dip" 
      android:layout_width="fill_parent"/> 

     <ViewPager 
      android:id="@+id/pager" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"/> 

    </LinearLayout> 

</RelativeLayout> 

<LinearLayout 
    android:orientation="vertical" 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="#111"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Separator 1"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="First button"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Separator 2"/> 

</LinearLayout> 

E in attività, è possibile aggiungere gli ascoltatori ai pulsanti.

Spero che questo aiuti!

Problemi correlati