那么对NestedScrollView和Recyclerview一起使用的判决是什么?

时间:2017-04-26 18:55:32

标签: android android-recyclerview material-design android-nestedscrollview

当我试图围绕谷歌在他们的开发者社区支持中使用的逻辑环绕我的大脑时,它让我疯狂到我真的被迫开始拉我的头发(幸运的是我是光头)。 我的意思是人们会期望google的小部件NSV间接地作为他们的根容器提倡,它将与其他几乎普遍使用的小部件回收者视图一起工作。

这怎么没有超越我的想法。在API22令我们困惑之后,谷歌仍然没有解决他们之间的问题。

我为浪费非高效的咆哮而道歉。

我拥有的东西
我想这里不会有新意,因为几乎所有在nestedscrollview中挣扎的人都有与我相同的设置。但是为了完成起见,这是脚手架我的观点。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical">
    <android.support.design.widget.CoordinatorLayout 
        tools:ignore="RtlHardcoded">

        <android.support.design.widget.AppBarLayout
            >

            <android.support.design.widget.CollapsingToolbarLayout
            >


                <View
                    ></View>

                <android.support.v7.widget.Toolbar
                    android:id="@id/tool_bar"
                     />
            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>


        <android.support.v4.widget.NestedScrollView
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="100dp" />
            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>

        <com.roughike.bottombar.BottomBar
            android:id="@+id/bottom_navigation_bar"
            />
    </android.support.design.widget.CoordinatorLayout>
</LinearLayout>

问题 简单! 。房车应该是WAI。它应该在甩尾时甩掉并在停止时停止。在NSV的领域下虽然RV没有甩,但是一旦手指抬起它就会停止。

猜测
在我可以使用的这么短的时间内(客户总是如此)以及在回收期间回收者视图和nsv之间可能存在残酷的技术性,我真的没有太多的动力去拿蜡烛走进下面的阴影。

然而,我没有选择和控制+点击RV。有人说这个问题与布局管理器有关。

如果我希望能找到解决方案,我会在这里发帖。如果您有任何相关问题,请在此发表您的想法。

2 个答案:

答案 0 :(得分:1)

我猜您正面临这个问题,因为您在NSV中使用RV。

只需使用RV作为 -

.......

            </android.support.design.widget.AppBarLayout>


                        <LinearLayout
                            android:orientation="vertical"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent">
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="100dp" />
                        <android.support.v7.widget.RecyclerView
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
                        </LinearLayout>

使用app:layout_behavior =&#34; @ string / appbar_scrolling_view_behavior&#34;在RV可以解决你的问题。

答案 1 :(得分:0)

我遇到了与recyclerview相同的问题。 将此值设置为falsev(我不知道确切的方法名称)

RV.setHasFixedSize(假)