android - 当 recyclerview 放置在 scrollview/nestedScrollView 中时,scrollToPosition 方法不起作用

标签 android android-recyclerview android-scrollview android-nestedscrollview

在我的布局中,ScrollView 是父级,它有 Imageview(160dp 高度)和一个 Recyclerview 作为子级。 场景:有图片和10个String的item列表,可见的listitems是0,1,2,3,4。因此,每当有新的 listitem 时,我都会更新列表并调用 scrollToPosition 方法(itemcount -1),但没有任何反应。我已经有了 setNestedScrollEnabled(false)

我尝试了 scrollView.fullScroll(DOWN) 方法,scrollView.scrollTo(0, adapter.itemcount),使用它滚动到旧列表的最后一项,但没有完全滚动以显示添加的新项目。这是我的布局

<android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@null">

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/scrollView"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="140dp" />



                <View
                    android:id="@+id/grey_line"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="@color/light_grey"
                    android:visibility="gone" />


                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <android.support.v7.widget.RecyclerView
                        android:id="@+id/comments_list"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:scrollbars="vertical" />


                </RelativeLayout>

            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>
    </android.support.v4.widget.SwipeRefreshLayout>

请帮忙,谢谢!

最佳答案

可能你正在使用

android:descendantFocusability="blocksDescendants" 

在您的布局中。

如果没有则尝试使用

android:focusable="true"
android:focudeableInTouchMode="true"

在你的 Recyclerview

关于android - 当 recyclerview 放置在 scrollview/nestedScrollView 中时,scrollToPosition 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46969132/

相关文章:

android - 图像作为按钮背景-崩溃和工作

java - Recyclerview 从 Picasso 加载缓存的图像非常缓慢

android - RecyclerView - 第一行 EditText

android - 如何在这些复选框上使用 ScrollView

android - 在方向更改期间管理 ScrollView 中的滚动位置

android - 异常 : 9003: PLACES_API_ACCESS_NOT_CONFIGURED

java - 如何在 View 页面中显示 fragment 之间的高程阴影?

android - 使用 View Pager 进行循环滚动

java - 使用 PhotoView 放大后无法达到图像的原始大小

java - RecyclerView 未被填充(getItemCount() 返回零)