gpt4 book ai didi

android - 如何在线性布局 RecyclerView 中缩进分隔符(即,仅向 ItemDecoration 添加填充、边距或插图)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:08:50 24 4
gpt4 key购买 nike

正在关注 this answer我能够在垂直 RecyclerView 的项目之间获得分隔线。但是,我还想稍微缩进分隔线。

我能够通过在 RecyclerView.ItemDecoration 子类中的 INDENT 值中进行硬编码来做到这一点。

int INDENT = 20;

@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {

int left = parent.getPaddingLeft() + INDENT;
int right = parent.getWidth() - parent.getPaddingRight() - INDENT;

// ...

divider.setBounds(left, top, right, bottom);

// ...
}

但是,那样我就不得不处理与密度无关的像素。

我终于找到了类似于 how it was done with ListView 的解决方案所以我在下面将其作为答案分享。

最佳答案

使用inset

drawable/my_divider.xml

<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="40dp"
android:insetRight="40dp" >

<shape>
<size android:height="1dp"/>
<solid android:color="@color/recyclerview_divider" />
</shape>

</inset>

使用带资源 ID 的构造函数,如 this answer 所示,我们可以提供自定义分隔符 xml 文件的 ID。

recyclerView.addItemDecoration(
new DividerItemDecoration(getActivity(), R.drawable.my_divider));

enter image description here

关于android - 如何在线性布局 RecyclerView 中缩进分隔符(即,仅向 ItemDecoration 添加填充、边距或插图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40434248/

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