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

如何在线性布局RecolyerView中缩进分隔线(即,仅在ItemDecoration中添加填充、边距或插入)

仲孙俊贤
2023-03-14

按照这个答案,我能够在垂直RecolyerView的项目之间得到一个分界线。然而,我也想稍微缩进分隔线。

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);

    // ...
} 

共有1个答案

陆洲
2023-03-14

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的构造函数,我们可以提供自定义分隔符xml文件的id。

recyclerView.addItemDecoration(
        new DividerItemDecoration(getActivity(), R.drawable.my_divider));
 类似资料:
  • 我正在构建一个使用的Android应用程序。我想将分隔符添加到,我用下面的代码做到了这一点: 到目前为止,一切正常。然而,分隔线占据了全屏幕的大小,我想给它增加边距。有没有什么方法可以给分隔线添加边距,方法是给绘制的矩形添加一些空间,而不是创建一个带边距的自定义可绘制形状,并将其添加到< code > recycle view 中?

  • 我想在线性布局(垂直)中添加一行文本 我想在java的函数中添加它们 如何做到这一点?

  • 如何在< code>Jetpack Compose中添加边距? 我看到有一个< code >修饰符用于填充< code >修饰符。padding(...)但是我好像找不到一个作边距还是我瞎了? 有人指导我吗? 非常感谢。

  • 是否有任何方法可以使用android: fillViewport="true"和一个子LinearLayout填充所有视图,当LinearLayout的内容不够高时? 到目前为止,在ScrollView中的LinearLayout中,我们必须使用Android:layout _ height = " wrap _ content "。我们可以添加一些东西来填充所有的滚动视图吗?

  • 我尝试过使用阴影xmls进行线性布局,但似乎没有按照我想要的方式进行。我使用的代码是: 请建议我如何实现这一点。

  • 但是,如果我尝试将此应用为通过调用访问的可提取资源,则根本不会绘制任何线。 怎么解,这样一条虚线就显示出来了?