当前位置: 首页 > 知识库问答 >
问题:

Android 回收商查看项目装饰分隔符在滚动之前不可见

轩辕季同
2023-03-14

我有一个像这样的简单回收视图:

  <android.support.v7.widget.RecyclerView
        android:id="@+id/tempRv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
    </android.support.v7.widget.RecyclerView>

我在片段中的onCreate()方法中添加了除法器:

    mRv = (RecyclerView) view.findViewById(R.id.tempRv);
    mRv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));

我还有一个简单的适配器来保存这些项目。问题是,在我向上或向下滚动recyclerView之前,分隔线是不可见的。我试过了:

  • 通过使用scrollTo(位置)方法以编程方式滚动到最后一项和更新适配器中的项后的第一项。
  • 添加NestedScrollView作为父级并滚动
    通过fullScroll(View.FOCUS_UP)对scrollView进行编程。

没什么帮助。分隔符仅在物理滚动后可见。最奇怪的是,我有另一个循环新闻,工作很好。

编辑

由于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,这就是为什么我在父标记中添加了属性<code>android:transitionGroup=“true”。删除此属性后,DividerItemDecoration工作正常。添加后,分隔符在滚动之前不可见。好像只是个虫子。

共有1个答案

骆文彬
2023-03-14

以编程方式回收视图分割器

mRv。addItemDecoration(新的DividerItemDecoration(getContext(),LinearLayout.VERTICAL));

尝试用LinearLayout替换上面的代码片段。垂直的

您能否显示您正在适配器中充气的项目布局?

我认为您的项目布局有一个android:方向="水平"

 类似资料:
  • 所以,这就是我的问题。我的recyclerview项目在底部有一个视图,我最初将其设置为消失。现在,当它们被点击时,我想让它们再次可见。所以在onClick方法中,我将视图设置为Visible。一切正常,但是当我向下滚动和向上滚动时,视图又隐藏了。我想这和取景模式有关。我想保持现状,即开放。我该怎么做?谢了。 视图支架: 点击: 编辑:上传的代码。此外,我尝试在onClick中更新Item的布尔值

  • 下面是我如何为RecyclerView项目设置间距。它被设计用于网格和列表。间隔很有效。 我搞不懂的是如何插入分隔线。如有任何帮助,我们将不胜感激。 旁注:如果你有比我现在做的更好的方法来实现间距,我会非常感激:) 下面是我想要做的一个快速视觉效果: 以下是我所知道的: 这是我想要的:

  • 在我的中,我有一些项目,用户可以滚动查看。现在我想保存这个位置,回来后滚动那个位置。下面的代码总是返回0,我不能保存它: logcat:

  • 什么是最好的和最简单的方法来装饰回收器视图有这样的外观 这里的主要挑战是仅在项目之间使用分隔线,而不是在项目和屏幕的左/右边框之间划分。 有什么想法吗?

  • 当我在回收器视图中选择一个项目时,会自动选择多个项目 我正在做的是 我只想获取没有重复的联系人,并在recyclerview中列出所有联系人,并使两个文本视图可见(一个用于数字,第二个用于名称)。完成了,但问题是 当我点击一个项目时,它会被点击4次(例如,如果我点击一个项目,它会显示两个文本视图,但具有相同名称和编号的相同项目会显示出来,就像我点击了4个项目并看到图片一样) 适配器类 在那里我得到

  • 假设我单击2位置的项目(记住其布局是颠倒的),然后调用 通知项目已更改(2[位置]) 在onBindViewHolder中,我在单击的项目上显示一些视图,因此它的高度会发生变化,当RecyclView测量它的孩子时,它会意识到它应该移动一些项目以使该项目的高度变化看起来引人入胜))。DefaultItemAnimator会处理它,但它会将所有低于“U are??? Omg谢谢u”项目的孩子向下移动