使用RecyclerView设置自定义分割线

在安卓开发中,RecyclerView控件来做一些列表是非常方便的,如何使用在网上很多文章,这次着重来说一下怎么设置自定义分割线:

首先,我们来看一下怎么设置默认的分割线

 RecyclerView mRecyclerView;
 mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));

  

 这个能满足一般需求,但是如果我想使用自定义的分割线呢,看以下代码

  DividerItemDecoration divider = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
        divider.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
        mRecyclerView.addItemDecoration(divider);

哈哈,这就发生了改变,把全部代码贴上来吧

package com.example.administrator.myapplication;

import android.content.ContextWrapper;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.RecyclerView;


import java.util.List;
import java.util.ArrayList;

public class BodyActivity extends AppCompatActivity {
    RecyclerView mRecyclerView;

    @Override
    protected void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_body);
        //1.获取控件
        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);

        //设置布局方式
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));//线性布局
//        mRecyclerView.setLayoutManager(new GridLayoutManager(this,2));//网格布局
        mRecyclerView.setHasFixedSize(true); //是否重新计算大小

        //3.准备数据
        List<News> newsList = new ArrayList<>();
        News news;
        for (int i = 1; i <= 20; i++) {
            news = new News();
            news.setNewsTitle("java是世界上最好的语言" + i);
            news.setNewsSource("新华网" + i);
            news.setPublishTime("2018-8-6");
            newsList.add(news);
        }


        //添加Android自带的分割线
//      mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));


        //添加自定义的分割线
        DividerItemDecoration divider = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
        divider.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
        mRecyclerView.addItemDecoration(divider);

        //4.准备适配器
        NewsAdapter newsAdapter = new NewsAdapter(newsList);
        mRecyclerView.setAdapter(newsAdapter);


    }
}
原文地址:https://www.cnblogs.com/mmykdbc/p/10623262.html