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


    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM