AndroidRecyclerView中的分割线
创始人
2024-10-09 18:01:35
0
  1. 使用 DividerItemDecoration 类

在 RecyclerView 中添加分割线最简单的方法是使用 DividerItemDecoration 类。这个类可以在 RecyclerView 中添加分隔线并控制它的样式和颜色。

下面是使用 DividerItemDecoration 类实现 RecyclerView 分割线的示例代码:

// 创建一个 DividerItemDecoration 对象并设置样式
DividerItemDecoration divider = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL);
divider.setDrawable(ContextCompat.getDrawable(context, R.drawable.divider));

// 将 DividerItemDecoration 添加到 RecyclerView
recyclerView.addItemDecoration(divider);
  1. 使用 ItemDecoration 类

如果您需要更自定义的分割线样式,则可以使用 RecyclerView 的 ItemDecoration 类来实现。该类可用于自定义任何视图项和分割线的外观。

下面是使用 ItemDecoration 类实现 RecyclerView 分割线的示例代码:

// 创建一个 RecyclerItemDecoration 类,并重写 getItemOffsets() 和 onDraw() 方法
public class RecyclerItemDecoration extends RecyclerView.ItemDecoration {

    private Drawable divider;

    public RecyclerItemDecoration(Context context, int resId) {
        divider = ContextCompat.getDrawable(context, resId);
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        if(parent.getChildAdapterPosition(view) != 0) {
            outRect.top = divider.getIntrinsicHeight();
        }
    }

    @Override
    public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
        int dividerLeft = parent.getPaddingLeft();
        int dividerRight = parent.getWidth() - parent.getPaddingRight();

        int childCount = parent.getChildCount();
        for(int i = 0; i < childCount; i++) {
            View child = parent.getChildAt(i);

            RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();

            int dividerTop = child.getBottom() + params.bottomMargin;
            int dividerBottom = dividerTop + divider.getIntrinsicHeight();

            divider.setBounds(dividerLeft, dividerTop, dividerRight, dividerBottom);
            divider.draw(c);
        }
    }
}

// 将 RecyclerItemDecoration 添加到 RecyclerView
recyclerView.addItemDecoration(new RecyclerItemDecoration(context, R.drawable.divider));
  1. 使用 DividerItemDecoration 和 ItemDecoration 结合

如果您需要同时具有多种样式的分隔线,则可以结合使用 DividerItemDecoration 和 ItemDecoration。

下面是结合使用 DividerItemDecoration 和 ItemDecoration 实现 RecyclerView 分割线的示例代码:

// 创建一个 ItemDecoration 类,并重写 getItemOffsets() 和 onDraw

相关内容

热门资讯

透视智能ai!wepoker免... 透视智能ai!wepoker免费辅助器,wepoker游戏安装教程(透视)玩家教你(有挂细节);1、...
透视黑科技(wepoker)w... 透视黑科技(wepoker)wepoker网页版透视方法(透视)切实有挂(2025版教程)1、玩家可...
透视黑科技!wepoker破解... 透视黑科技!wepoker破解是真的还是假的,wepoker怎么增加运气(透视)细节揭秘(有挂教程)...
透视辅助(wepoker)we... 透视辅助(wepoker)wepoker透视脚本免费下载(透视)切实是真的有挂(规律教程)1、该软件...
透视挂(WePoKer)wep... 透视挂(WePoKer)wepoker私人局透视(透视)一贯存在有挂(切实教程)暗藏猫腻,小编详细说...
透视安卓版!wepoker透视... 透视安卓版!wepoker透视苹果系统,wejoker辅助软件价格(透视)解密教程(有挂详情);透视...
透视安卓版(WEPOKER)w... 透视安卓版(WEPOKER)wepoker透视最简单三个步骤(透视)好像是有挂(攻略方法);一、we...
透视肯定!wepoker钻石怎... 透视肯定!wepoker钻石怎么看底牌,wepoker辅助器官方(透视)普及教程(有挂解密)1、游戏...
透视工具(wepoker)we... 透视工具(wepoker)wejoker手机版透视脚本(透视)好像有挂(微扑克教程);一、wejok...
辅助透视!wepoker有辅助... 辅助透视!wepoker有辅助插件吗,wepoker免费钻石(透视)细节揭秘(有挂辅助)1、让任何用...