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

回收人员查看带有ItemDecoration的分隔器宽度

嵇丰
2023-03-14

我有一个回收站视图,并添加了一个项目装饰,如下所示:-

mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));

我的项目装饰看起来像:-

public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state)
    {
        final int top = parent.getPaddingTop();
        final int bottom = parent.getHeight() - parent.getPaddingBottom();
        final int childCount = parent.getChildCount();
        for (int i = 0; i < childCount; i++)
        {
            final View child = parent.getChildAt(i);
            final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
            final int left = child.getRight() + params.rightMargin;
            final int right = left + mDivider.getIntrinsicHeight();
            mDivider.setBounds(left, top, right, bottom);
            mDivider.draw(c);
        }
}

这将绘制一个占据整个屏幕宽度的分隔线。我想在大约15dp(红线)的左边和右边增加一点空白,这样它看起来比屏幕宽度短一些,如下所示

我怎样才能做到这一点?欢迎提出任何建议。

共有2个答案

松高歌
2023-03-14

只是把的值

    final int left = 200;
    final int right= 200;
彭硕
2023-03-14

请查看getItemOffsets方法。像下面这样的东西应该可以做到。

override fun getItemOffsets(
    rect: Rect,
    view: View,
    parent: RecyclerView,
    state: RecyclerView.State
) {
    rect.right = parent.right - yourMargin
    rect.left = parent.left + yourMargin
}

方法将设置要在其中绘制(onDraw(...))装饰的矩形空间。

 类似资料:
  • 我使用了一个< code > recycle view 并以十个为一批从API中获取对象。对于分页,我使用< code > endlescycleronscrolllistener 。 一切正常。现在剩下的就是在列表底部添加一个进度微调器,同时API获取下一批对象。下面是谷歌Play商店应用的截图,显示了一个< code >进度条,这肯定是一个< code >回收视图: 问题在于,无论是还是都没有

  • 我需要制作一个可扩展的 ,每次点击只能打开一个项目(所有其他项目都必须关闭)。我知道有可能在的帮助下做到这一点,然后使用下一个代码: 但是有没有办法使用来做同样的事情?

  • 我想有一个固定行数的recyclerView,不可滚动,每行有一个固定的高度,以及填充所有屏幕。例如,我有4行,所以行高应该是recyclerView height/4。 行布局。xml 回收人员视图: java代码: 有什么想法吗?

  • FolderListAdapter代码 RecyclerView的Mainactive代码 回收器视图的XML代码 folderList的大小为2 我还检查了适配器的大小。它也是2,我不知道我在哪里犯了错误,为什么它现在在活动中什么都没有显示

  • 我正在构建一个聊天应用程序,并使用 RecyclerView 呈现消息。由于这是一个聊天应用程序,最后的消息应显示在列表的底部。为了实现这一点,我通过以下方式使用LinearManager: 如果对话中有很多信息,它也能很好地工作。但是,如果用户之间只有一两条消息,RecyclerView会将它们显示在屏幕底部,并在它们上方留出空白。 在这种情况下,是否可以在屏幕顶部显示回收器项目?

  • 我有一个嵌套片段的项目(https://github.com/checklist/NestedFragmentsRecycler)。FragmentA位于MainActivity中,包含带有适配器的RecyclerView。适配器中的每个项目都将返回FragmentB。因为我需要给一个id来装载FragmentB到位置,并且它需要是唯一的,所以我正在生成我自己的id。第一个片段显示得很好,但不幸的