ListView没有在NestedScrollView中扩展

Bin*_*aby 35 android android-coordinatorlayout android-appbarlayout nestedscrollview

CoordinatorLayout在我的活动页面中使用.在那里有ListViewapp栏下方.但是当我使用它ListView而不是它时它不起作用NestedScrollView.如果我把ListView里面NestedScrollView,ListView不扩大

小智 67

当你添加你能解决这个问题addtribute android:fillViewport="true"android.support.v4.widget.NestedScrollView:).这是我的代码.

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="none"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:fillViewport="true"
    >
    <ListView
        android:id="@+id/list_myContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
        >
    </ListView>

</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

  • 对我来说也没用.ListView内容不可滚动. (24认同)
  • android:fillViewport ="true"做了魔法+1 (6认同)
  • 列表视图不滚动 (6认同)
  • 它确实扩展了视口,但它不能滚动我. (3认同)

Bla*_*elt 40

在棒棒糖上你可以使用

setNestedScrollingEnabled(true);
Run Code Online (Sandbox Code Playgroud)

在ListView/GridView/ScrollableView上.从文档中

启用或禁用此视图的嵌套滚动

如果您需要向后兼容旧版本的操作系统,则必须使用RecyclerView.你可以在这里阅读更多

编辑. ViewCompat有静态方法setNestedScrollingEnabled(View, boolean).例如.

ViewCompat.setNestedScrollingEnabled(listView, true)
Run Code Online (Sandbox Code Playgroud)

感谢@Dogcat指出它

  • 绝对应该对这个答案进行投票,甚至现在将其设置为正确的答案。我最终将实现更改为`RecyclerView`,因为我只读了被接受为答案的答案。是的,我当然可以阅读所有答案,但是第一个答案对我有用-如果只是麻烦更改实现;-) (2认同)
  • ViewCompat 在 Android Lolipop 之前什么都不做:/sf/ask/2296778501/ (2认同)

Ves*_*sko 32

为了CoordinatorLayout正常工作,您需要滚动子项来实现NestedScrollingChild.这些课程是NestedScrollViewRecyclerView.

说它简短 - 只需使用一个RecyclerView滚动内容,它将正常工作:)

PS作为旁注,我没有看到你ListView再使用它的原因.我知道这是一种习惯,它更容易设置(因为你已经多次完成),但RecyclerView无论如何使用a 是推荐的方式.

  • RecyclerView不处理CursorAdapter.这可能是一个很好的理由! (7认同)

Shi*_*vam 11

只是把android:fillViewport="true"你的NestedScrollView标签


Lou*_*oho 8

这就是对我有用的。

设置android:fillViewport="true"NestedScrollView

向中添加一个布局元素作为子元素NestedScrollView。在我的情况LinearLayout,然后设置android:nestedScrollingEnabled="true"ListViewListView的一个孩子LinearLayout

好去


Tua*_*yen 7

您的列表视图将滚动。希望对您有所帮助。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"

    <android.support.v4.widget.NestedScrollView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
         app:layout_behavior="@string/appbar_scrolling_view_behavior">

         <ListView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:nestedScrollingEnabled="true">
         </ListView>
    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)