18

我有一个导航抽屉的列表视图,如何将“添加朋友”、“设置”等列表项放在列表视图的底部。

在此处输入图像描述

更新 1
我在页脚视图中添加了一个设置视图。

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); 

设置项成功出现在列表视图的最后一项。但是我怎样才能让它粘在底部并对齐呢?谢谢。

4

2 回答 2

21

你可以把ListView里面的 aRelativeLayout赋值android:layout_gravity="start"RelativeLayout. 并将android:layout_alignParentBottom="true"属性设置为要设置为底部的视图ListView

这可能会对您有所帮助。

<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>
于 2013-10-08T17:50:19.877 回答
2

Jay Donga 真的很有帮助,但我必须更改两种方法才能在 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)
于 2014-01-25T18:40:40.147 回答