[METTRE À JOUR]
Je résous le problème en ajoutant 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);
================================
Ma question est si simple!
Je voudrais comment ajouter un titre dans un tiroir de navigation?
J'ai déjà créé mon tiroir de navigation avec listview (icône + texte) pour chaque élément.
Merci beaucoup,
Placez un TextView
au-dessus d'un ListView
et enveloppez-le dans un LinearLayout
vertical. Donnez à votre ListView Android:layout_weight="1"
et Android:layout_height="0dip"
Vous le feriez de la même manière que vous ajouteriez des en-têtes dans tout autre ListView
, en enseignant à votre ListAdapter
de renvoyer des lignes d'en-tête ainsi que des lignes de détail. Au niveau bas, cela implique de surcharger des méthodes telles que getViewTypeCount()
et getItemViewType()
dans votre ListAdapter
, plus d'avoir getView()
connaître la différence entre les types de lignes. Ou, utilisez une implémentation de haut niveau existante telle que https://github.com/emilsjolander/StickyListHeaders ou http://code.google.com/p/Android-amazing-listview/ any des autres trouvés lors de la recherche de Android listview headers
.
C'est peut-être un peu tard mais je pense avoir une solution plus simple. Dans la présentation de votre activité, au lieu d'ajouter un listView dans DrawerLayout, vous pouvez ajouter par exemple un LinearLayout, et vous pouvez facilement ajouter des séparateurs et des lignes. Par exemple:
<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>
Et dans l'activité, vous pouvez ajouter les écouteurs aux boutons.
J'espère que cela pourra aider!