修复NavigationDrawer滚动

时间:2014-12-01 11:54:11

标签: java android listview scrollview navigation-drawer

我在处理NavigationDrawer的滚动时遇到问题。我有3个listview,有3个标题。 我希望listview可以将它们的高度包装到它们的内容中,这样它们就不会被滚动了。显然,通过这种方式,如果最后一个listview不能完全保留在布局中,她不必滚动,而是必须滚动它们所在的线性布局。 我尝试了一些方法,但我没有修复它。其中一个是将线性布局放在ScrollView中,但是当我尝试它时,listview的内容减少到每行一行。

这是我现在获得的(没有ScrollView尝试):

enter image description here

以下是我想通过滚动获得的内容:

enter image description here

这是我的XML代码(没有ScrollView尝试):

<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"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

    <LinearLayout
        android:layout_width="240dp"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:orientation="vertical"
        android:id="@+id/drawer_container">

        <ListView
            android:id="@+id/drawer_list"
            android:layout_width="240dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:background="#fff">
       </ListView>

       <ListView
            android:id="@+id/drawer_list2"
            android:layout_width="240dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:background="#fff">
       </ListView>

       <ListView
            android:id="@+id/drawer_list3"
            android:layout_width="240dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:background="#fff">
      </ListView>
   </LinearLayout>
</android.support.v4.widget.DrawerLayout>

对于这个问题的长篇内容感到抱歉,但我想提出一个明确的问题。

1 个答案:

答案 0 :(得分:0)

因此,如果行数是静态的,我建议不要使用listviews。 仅使用textview(或每行所需的任何内容) 并给出父布局weight_sum = [元素数] 对于每一行,给出height = 0dip,weight = 1:

<LinearLayout
    android:layout_width="240dp"
    android:layout_height="wrap_content"
    android:layout_gravity="start"
    android:orientation="vertical"
    android:id="@+id/drawer_container"
    android:weightSum="3">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1"/>

</LinearLayout>