RecyclerView没有完成滚动

时间:2016-01-28 02:55:13

标签: android android-recyclerview

我在协调器视图中有一个recyclerview,recyclelerview位于framelayout的一个片段中,位于appbarlayout下面,这里是布局描述

 <android.support.design.widget.CoordinatorLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/coordinator"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <FrameLayout
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                android:id="@+id/fragmentFrame"
                android:layout_height="match_parent"
                android:layout_width="match_parent"/>

        <android.support.design.widget.AppBarLayout
                android:id="@+id/appBarLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                    app:layout_scrollFlags="snap|enterAlways|scroll">
            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>
    </android.support.design.widget.CoordinatorLayout>

recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);

每当我执行smoothscrolltoposition时,它都没有完成滚动,底部有一点偏移,动作条高度的高度。对smoothscrolltoposition的任何后续调用都具有相同的偏移量。但是,如果我执行滚动以隐藏工具栏,那么它没关系,并且没有偏移。

如何强制Recyclerview完全滚动。我和stackFromEnd一起使用它。

1 个答案:

答案 0 :(得分:0)

AppBarLayout 的方法出现在 23 api 版本中:

setExpanded(boolean expanded) 

在developers.android上查看其说明:AppBarLayout.setExpanded

我还在GitHub上找到了一个有趣的例子:setExpanded example

尝试执行smoothScrollToPosition时遇到了同样的情况:RecyclerView像往常一样滚动,但AppBarLayout根本没有滚动。我必须手动滚动以隐藏AppBarLayout并滚动到最后一个列表元素。

我希望这个答案能够挽救某一天,我花了很多时间寻找解决方案。