【发布时间】:2019-05-20 01:10:57
【问题描述】:
我有一个像这样的简单 RecyclerView:
<android.support.v7.widget.RecyclerView
android:id="@+id/tempRv"
android:layout_width="match_parent"
android:layout_height="match_parent"
</android.support.v7.widget.RecyclerView>
我在 Fragment 的 onCreate() 方法中添加分隔符:
mRv = (RecyclerView) view.findViewById(R.id.tempRv);
mRv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
我还有一个简单的适配器来存放这些物品。 问题是,在我向上或向下滚动 recyclerView 之前,分隔符是不可见的。 我试过了:
- 使用
scrollTo(position)方法以编程方式滚动到 更新项目后的最后一项和第一项 适配器。 - 添加 NestedScrollView 作为父级并滚动
fullScroll(View.FOCUS_UP)以编程方式滚动视图。
没有任何帮助。分隔线仅在物理滚动后可见。 奇怪的是,我还有另一个可以正常工作的 RecyclerViews。
编辑
由于 Sharan Salian 要求将项目布局添加到帖子中以便他可以重现此行为,我实际上尝试自己重现它。项目父布局为:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:transitionGroup="true"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp">
...
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
...
</RelativeLayout>
我之前没有提到我将项目用作SharedElement,这就是为什么我在父标记中添加了android:transitionGroup="true" 属性。
删除此属性后,DividerItemDecoration 工作正常。一旦我添加它,分隔线在滚动之前是不可见的。
似乎只是一个错误。
【问题讨论】:
-
问题是,当一些人试图帮助你时,你应该接受提到的答案并没有给出值得尊重的时间和努力。
标签: android android-recyclerview