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

相关内容

热门资讯

一起来讨论!琼州雀友辅助器脚本... 一起来讨论!琼州雀友辅助器脚本软件,琼州雀友切实是有辅助器了解软件所有人都在同一条线上,像星星一样排...
科普分享!龙行麻将辅助脚本软件... 科普分享!龙行麻将辅助脚本软件,龙行麻将原来存在有辅助揭幕插件一、龙行麻将游戏安装教程牌型概率发牌机...
总算了解!繁花透视挂脚本软件,... 总算了解!繁花透视挂脚本软件,繁花原来有透视挂揭露脚本1、下载好繁花脚本下载之后点击打开,先需要设置...
玩家必看分享!哆来咪辅助脚本软... 玩家必看分享!哆来咪辅助脚本软件,哆来咪果然真的有辅助揭幕app1、许多玩家不知道哆来咪辅助怎么退出...
科普分享!情怀古诗词透视脚本软... 科普分享!情怀古诗词透视脚本软件,情怀古诗词本来是真的有透视详情工具1、科普分享!情怀古诗词透视脚本...
玩家攻略!闲来棋牌合集透视挂脚... 玩家攻略!闲来棋牌合集透视挂脚本软件,闲来棋牌合集竟然是真的有透视挂关于软件;1、金币登录送、破产送...
一起来探讨!启辰开挂脚本软件,... 一起来探讨!启辰开挂脚本软件,启辰原来是真的有开挂推荐工具1、这是跨平台的启辰轻量版有透视,在线的操...
重大科普!牵手湖南麻将辅助脚本... 您好,牵手湖南麻将这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
总算清楚!青橙竞技透视挂脚本软... 总算清楚!青橙竞技透视挂脚本软件,青橙竞技本来是有透视挂了解app1、青橙竞技透视辅助软件激活码多个...
大神推荐!闲来贵州麻将透视挂脚... 大神推荐!闲来贵州麻将透视挂脚本软件,闲来贵州麻将都是真的是有透视挂解谜方法1、闲来贵州麻将辅助器安...