web-dev-qa-db-fra.com

Comment ajouter un titre dans la disposition du tiroir de navigation?

[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,

enter image description here

25
wawanopoulos

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" 

5
Blackbelt

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.

11
CommonsWare

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!

0
Racker