gpt4 book ai didi

Android recyclerview itemDecoration divider is invisible until scroll

转载 作者:行者123 更新时间:2023-11-30 05:10:20 28 4
gpt4 key购买 nike

我有一个像这样的简单 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));

我还有一个简单的 Adapter 用来存放元素。问题是,在我向上或向下滚动 recyclerView 之前,分隔线是不可见的。我试过:

  • 使用 scrollTo(position) 方法以编程方式滚动更新项目后的最后一项和第一项适配器。
  • 添加 NestedScrollView 作为父 View 并滚动
    通过 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 工作正常。一旦我添加它,分隔线在滚动之前是不可见的。似乎只是一个错误。

最佳答案

Recycler 以编程方式查看分隔线

mRv.addItemDecoration(new DividerItemDecoration(getContext(), LinearLayout.VERTICAL));

尝试将上面的代码 fragment 替换为 LinearLayout.Vertical 并告诉我。

你能展示你在适配器中膨胀的项目布局吗?

我认为您的项目布局有一个 android:orientation = "horizo​​ntal" 并且您想要一个垂直分隔线。这只是一个假设,因为我从这个问题中得到的见解很少。

关于Android recyclerview itemDecoration divider is invisible until scroll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53852990/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com