NestedScrollView 内 RecyclerView 中的 SmoothScrollTo 项
Posted
技术标签:
【中文标题】NestedScrollView 内 RecyclerView 中的 SmoothScrollTo 项【英文标题】:SmoothScrollTo item in RecyclerView inside NestedScrollView 【发布时间】:2019-06-14 17:47:12 【问题描述】:这是我的布局:
<android.support.v4.widget.NestedScrollView
android:layout_
android:layout_
android:fillViewport="true"
android:id="@+id/nsvRoot"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_
android:layout_
android:descendantFocusability="blocksDescendants"
android:orientation="vertical">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_
android:layout_
android:layout_marginBottom="8dp"
app:cardCornerRadius="0dp"
app:cardElevation="4dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<More_Child_Views/>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_
android:layout_
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:cardCornerRadius="0dp"
app:cardElevation="4dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<More_Child_Views/>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_
android:layout_
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:cardElevation="4dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical"
android:visibility="gone">
<android.support.v7.widget.RecyclerView
android:id="@+id/rvItems"
android:layout_
android:layout_ />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</LinearLayout>
在此布局的底部有一个RecyclerView
,ID 为rvItems
。
我希望根NestedScrollView
滚动到此Recyclerview
中特定项目的位置。
我试过了:
rvItems.getChildAt(itemIndex).getY();
但childAt(itemIndex)
返回 null,rvItems.getItemCount()
返回 0,即使回收站视图中显示了 15 多个项目。
我认为这是由于NestedScrollView
是RecyclerView
的父级。
如何滚动到 recyclerView
中项目的位置?
【问题讨论】:
发布您的适配器代码 【参考方案1】:几点说明
请向我们展示您如何声明/设置您的适配器和回收站视图。还要检查您的方法调用的顺序。 (例如,在将适配器传递给 recyclerview 之前先设置适配器)。
什么可以解决这个问题
recyclerView.getLayoutManager().scrollToPosition(10); // 10 being the position of the item
了解更多
https://developer.android.com/reference/android/support/v7/widget/RecyclerView#scrolltoposition【讨论】:
以上是关于NestedScrollView 内 RecyclerView 中的 SmoothScrollTo 项的主要内容,如果未能解决你的问题,请参考以下文章
在 NestedScrollView 内带有锚点的 Webview
具有固定高度的 Recyclerview 不会在 nestedscrollview 内滚动
Android:TextInputLayout 不适合页面并阻止页面在 NestedScrollView 内滚动
webview 高度在 nestedScrollView 内无限增长