title: Navigation Drawer : add headers in listview
body: <p>I have created a project with the new navigation drawer Object.</p>
  
  <p>I would like to customize the layout of the menu, to add another object like TextView, ImageView ... And for begining, i would like to modify the default layout which is composed only with one listview, by adding 2 or 3 headers in the listview.</p>
  
  <p>Today, i have tried to use "addHeaderView" but i think it's possible to use this only for adding one header.</p>
  
  <p>How can i do to add header and really customize my layout menu? Because, from the developer API, it seems that only two childrens are permit under a "android.support.v4.widget.DrawerLayout".</p>
  
  <p>Here is a capture of my layout today :</p>
  
  <p><a href="https://i.stack.imgur.com/YM2DE.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/YM2DE.png" alt="Navigation Drawer Headers in listview"></a></p>
  
  <p>And here is a capture that i want to create :</p>
  
  <p><img src="https://i.stack.imgur.com/RlVO0.png" alt="Navigation Drawer Headers in listview"></p>
  
  <p>Here is a piece of code of my MainActivity :</p>
  
  <pre><code>public class MainActivity extends Activity {
  private DrawerLayout mDrawerLayout;
  private ListView mDrawerList;
  private ActionBarDrawerToggle mDrawerToggle;
  
  private CharSequence mDrawerTitle;
  private CharSequence mTitle;
  private String[] mPlanetTitles;
  
  @Override
  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);
  
      // Declaration of the 2 listview's 
      mDrawerList = (ListView) findViewById(R.id.dernieres_news);
  
      LayoutInflater inflater = getLayoutInflater();
  
      // Add header news title
      ViewGroup header_news = (ViewGroup)inflater.inflate(R.layout.header_dernieres_news, mDrawerList, false);
      mDrawerList.addHeaderView(header_news, null, false);
  
      // set a custom shadow that overlays the main content when the drawer opens
      mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
  
      String[] names=new String[]{"Title 1", "Title 2", "Title 3", "Title 4", "Title 5"};
  
      /*Array of Images*/
      int[] image = new int[] {R.drawable.ic_action_feed, R.drawable.ic_action_feed, R.drawable.ic_action_feed, R.drawable.ic_action_feed, R.drawable.ic_action_feed};
  
      List&lt;HashMap&lt;String, String&gt;&gt; listinfo = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
      listinfo.clear();
      for(int i=0;i&lt;5;i++){
          HashMap&lt;String, String&gt; hm = new HashMap&lt;String, String&gt;();
          hm.put("name", names[i]);
          hm.put("image", Integer.toString(image[i]));
          listinfo.add(hm);
      }
  
      // Keys used in Hashmap
      String[] from = { "image", "name" };
      int[] to = { R.id.img, R.id.txt };
      SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to);
      mDrawerList.setAdapter(adapter);
  
      mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
  
      // enable ActionBar app icon to behave as action to toggle nav drawer
      getActionBar().setDisplayHomeAsUpEnabled(true);
      getActionBar().setHomeButtonEnabled(true);
  
      // ActionBarDrawerToggle ties together the the proper interactions
      // between the sliding drawer and the action bar app icon
      mDrawerToggle = new ActionBarDrawerToggle(
              this,                  /* host Activity */
              mDrawerLayout,         /* DrawerLayout object */
              R.drawable.ic_drawer,  /* nav drawer image to replace 'Up' caret */
              R.string.drawer_open,  /* "open drawer" description for accessibility */
              R.string.drawer_close  /* "close drawer" description for accessibility */
              ) {
          public void onDrawerClosed(View view) {
              getActionBar().setTitle(mTitle);
              invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
          }
  
          public void onDrawerOpened(View drawerView) {
              getActionBar().setTitle(mDrawerTitle);
              invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
          }
      };
      mDrawerLayout.setDrawerListener(mDrawerToggle);
  
      if (savedInstanceState == null) {
          selectItem(0);
      }
  }
  </code></pre>
  
  <p>And the code of activity_main.xml :</p>
  
  <pre><code>&lt;android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/drawer_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent" &gt;
  
  &lt;FrameLayout
      android:id="@+id/content_frame"
      android:layout_width="match_parent"
      android:layout_height="match_parent" /&gt;
  
  
      &lt;ListView
          android:id="@+id/dernieres_news"
          android:layout_width="240dp"
          android:layout_height="match_parent"
          android:layout_gravity="start"
          android:background="#F3F3F4"
          android:choiceMode="singleChoice"
          android:divider="#E3E9E3"
          android:dividerHeight="1dp" /&gt;
  </code></pre>
  
  <p></p>