将固定/静态标头添加到导航DrawerLayout

时间:2015-05-06 19:44:37

标签: android listview navigation-drawer drawerlayout

与许多应用一样,我使用DrawerLayout代码,如下所示:

<android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="#FFFFFF"
        tools:context=".MainActivity">
    <!-- The main content view -->
    <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    <!-- The navigation drawer -->



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

</android.support.v4.widget.DrawerLayout>

我在ListView之上有一些用户信息,因此我使用了addHeaderView()。但是,这会滚动列表。我希望列表显示它在它下面滚动并且标题保持固定在顶部。

这可能吗?我尝试将ListView包裹在LinearLayout内,并在该布局中包含标题代码。这完全打破了应用程序。还有其他方法吗?我实际上已经看到Google在至少一个应用程序(youtube)中执行此操作。

1 个答案:

答案 0 :(得分:0)

以某种布局包装你的列表是要走的路。也许你只是错过了什么。试试这个:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    tools:context=".MainActivity">
    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    <!-- The navigation drawer -->


    <LinearLayout
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_gravity="right">

        <!--SOME HEADER-->
        <View
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <ListView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:background="#FFFFFF" />
    </LinearLayout>

</android.support.v4.widget.DrawerLayout>