【问题标题】:Fix NavigationDrawer scrolling修复 NavigationDrawer 滚动
【发布时间】:2014-12-01 11:54:11
【问题描述】:

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

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

这是我想通过滚动获得的:

这是我的 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>

对不起,这个问题的内容很长,但我想做一个明确的问题。

【问题讨论】:

  • 内容是动态的吗?
  • @DorAyalon 如果您的意思是列表视图的内容(因此列表项),对于部分上的某些计数器,它必须是动态的。列表项的内容也必须是动态的。唯一静态的是这些列表视图中的项目数。

标签: java android listview scrollview navigation-drawer


【解决方案1】:

所以如果行数是静态的,我建议不要使用列表视图。 只使用 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>

【讨论】:

  • 对不起,我想到了这个解决方案,但我更喜欢使用 List 进行操作,以获得更简洁的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2019-04-10
  • 2013-08-02
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多