简体   繁体   English

如何为 DividerItemDecoration Android 添加边距开始

[英]How to add margin start to DividerItemDecoration Android

I used the below code to add dividers to my list.我使用下面的代码将分隔线添加到我的列表中。 But my question is how can I add margin_start to those dividers so the that it will look something like the attached image.但我的问题是如何将 margin_start 添加到这些分隔线,以便它看起来像附加的图像。 Thank in advance.预先感谢。

DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
    layoutManager.getOrientation());
recyclerView.addItemDecoration(dividerItemDecoration);

样本

I found the best solution我找到了最好的解决方案

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

From: https://stackoverflow.com/a/40434249/5093308来自: https://stackoverflow.com/a/40434249/5093308

You need to override method getItemOffsets(Rect, View, RecyclerView, RecyclerView.State) . 您需要覆盖方法getItemOffsets(Rect, View, RecyclerView, RecyclerView.State)


See example: 见例子:

DividerItemDecoration dividerItemDecoration = new 
    DividerItemDecoration(recyclerView.getContext(),layoutManager().getOrientation()){

    private int startMargin = Utils.fromDpToPx(10f);

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        if (parent.getChildAdapterPosition(view) == 0){
            outRect.set(0, startMargin, 0, 0);
        }
    }
};
recyclerView.addItemDecoration(dividerItemDecoration);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM