NestedScrollView 平滑滚动到顶部和内部的视图
Posted
技术标签:
【中文标题】NestedScrollView 平滑滚动到顶部和内部的视图【英文标题】:NestedScrollView smooth scroll to the top and to a view inside 【发布时间】:2018-02-17 13:34:04 【问题描述】:首先我需要将NestedScrollView
滚动到顶部,但smoothScrollTo(0, 0)
对我不起作用(页面只是跳了一下)。其次,我想知道如何滚动到NestedScrollView
中的某个视图。 API 27,支持 27.0.2。
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data/>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/refresh"
android:layout_
android:layout_>
<android.support.v4.widget.NestedScrollView
android:layout_
android:layout_
android:background="@color/PageBackground"
android:fillViewport="true">
<LinearLayout
android:layout_
android:layout_
android:descendantFocusability="blocksDescendants"
android:orientation="vertical"
android:paddingBottom="@dimen/indent_page_bottom">
...
<android.support.v7.widget.RecyclerView
android:layout_
android:layout_
android:orientation="vertical" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.SwipeRefreshLayout>
</layout>
【问题讨论】:
对其他人来说,这可能会有所帮助***.com/questions/52083678/… 【参考方案1】:我有一个nestedscrollview
,里面有recyclerview
。我试过smoothScrollTo(0, nsv_main.top)
。没用。我给nestedscrollview
提供了一个ID,如下所示
<android.support.v4.widget.NestedScrollView
android:id="@+id/nsv_main"
android:layout_
android:layout_
android:background="@color/PageBackground"
android:fillViewport="true">
<LinearLayout
android:layout_
android:layout_
android:descendantFocusability="blocksDescendants"
android:orientation="vertical"
android:paddingBottom="@dimen/indent_page_bottom">
...
<android.support.v7.widget.RecyclerView
android:layout_
android:layout_
android:orientation="vertical" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
并在我的点击事件中提供nsv_main.scrollY = 0
。它工作,即使它不是一个平滑的滚动。
【讨论】:
nsv_main.scrollY = 0 :对我不起作用。我在 NestedScrollView 中有一个 ConstraintLayout,它的 recyclerView 高度设置为 wrap_content。【参考方案2】:尝试使用fling
实现平滑滚动:
nestedScrollView.fling(0);
nestedScrollView.smoothScrollTo(0, 0);
【讨论】:
以上是关于NestedScrollView 平滑滚动到顶部和内部的视图的主要内容,如果未能解决你的问题,请参考以下文章
将 Scaffold 放入 NestedScrollview 时的奇怪行为?在 SliverAppbar 下剪辑时自动滚动到顶部
SwipeRefreshLayout 内的 NestedScrollView 内的 RecyclerView 不能平滑滚动
NestedScrollView 和 Horizontal RecyclerView 平滑滚动
Videojs requestPictureInPicture() 在滚动到顶部和底部时只工作一次