我有一个简单的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)
方法以编程方式滚动
最后一个项目和第一个项目在更新项目之后
适配器。fullScroll(View.FOCUS_UP)
以编程方式实现scrollView。没有任何帮助。分隔线仅在物理滚动后可见。 奇怪的是,我还有另一个可以正常工作的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 可以正常工作。一旦添加,分隔线在滚动之前是不可见的。
好像只是一个错误。
答案 0 :(得分:0)
以编程方式收集“回收者视图”分隔符
mRv.addItemDecoration(new DividerItemDecoration(getContext(),LinearLayout.VERTICAL));
请尝试将以上代码片段替换为 LinearLayout.Vertical ,并告诉我。
您能显示正在适配器中充气的物品布局吗?
我认为您的项目布局具有android:orientation = "horizontal"
,并且您需要垂直分隔线。这只是一个假设,因为我从课题中获得了很少的见识。