Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to put list items at the bottom of list view in Navigation Drawer like Foursquare

I got a list view for navigation drawer, how can I put list item like "Add Friends", "Settings" align at the bottom of the list view.

enter image description here

Update 1
I add a setting view to the footer view.

View settingView = getLayoutInflater().inflate(R.layout.drawer_list_item, null);
TextView textView = (TextView)settingView.findViewById(R.id.drawer_list_item_text_view);
textView.setText("Settings");
drawerListView.addFooterView(settingView); 

The settings item appear at the last one in the list view successfully. But how can I make it to stick and align at the bottom? Thanks.

like image 920
Edward Chiang Avatar asked Oct 03 '13 10:10

Edward Chiang


2 Answers

You can put the ListView inside a RelativeLayout and assign android:layout_gravity="start" to the RelativeLayout. And set android:layout_alignParentBottom="true" property to the view you want to set to bottom of ListView.

This may help you.

<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" >

<FrameLayout
    android:id="@+id/content_frame"...../>

<RelativeLayout
    android:id="@+id/relative_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start" >

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <TextView
            android:id="@+id/text_view1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Add Friends" />

        <TextView
            android:id="@+id/text_view2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Settings" />
    </RelativeLayout>
</RelativeLayout>

</android.support.v4.widget.DrawerLayout>
like image 84
Jay Donga Avatar answered Oct 22 '22 04:10

Jay Donga


Jay Donga was really helpful, but I had to change two methods to insert a footer in my DrawerLayout.

// WITHOUT FOOTER VIEW
mDrawerLayout.isDrawerOpen(mDrawerList)
mDrawerLayout.closeDrawer(mDrawerList)

// WITH FOOTER VIEW
mDrawerContent = (RelativeLayout) findViewById(R.id.relative_layout);
mDrawerLayout.isDrawerOpen(mDrawerContent)
mDrawerLayout.closeDrawer(mDrawerContent)
like image 31
AMarones Avatar answered Oct 22 '22 03:10

AMarones