【移動應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)RecyclerView添加分割線_第1頁
【移動應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)RecyclerView添加分割線_第2頁
【移動應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)RecyclerView添加分割線_第3頁
【移動應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)RecyclerView添加分割線_第4頁
【移動應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)RecyclerView添加分割線_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】Android如何實(shí)現(xiàn)RecyclerView添加分割線

這篇文章給大家分享的是有關(guān)Android如何實(shí)現(xiàn)RecyclerView添加分割線的內(nèi)容。在下覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨在下過來看看吧。1、前言剛開始學(xué)習(xí)RecyclerView的時(shí)候我跟著一個(gè)視頻學(xué)的,當(dāng)時(shí)添加分割線是從外面導(dǎo)入一個(gè)Java類,然后使用里面的函數(shù)來創(chuàng)建分割線的,所以一直以來我都是這樣做的。直到前幾天才無意中發(fā)現(xiàn),原來v7包中提供了一個(gè)DividerItemDecoration類,利用它,我們可以很簡單地實(shí)現(xiàn)RecyclerView的分割線!那還等什么呢?趕緊用起來。2、創(chuàng)建一個(gè)簡單的RecyclerView首先當(dāng)然應(yīng)該來一個(gè)RecyclerView,這里就不再贅述了,隨便造點(diǎn)數(shù)據(jù)就好。直接上代碼:public

class

MainActivity

extends

AppCompatActivity

{

private

RecyclerView

recyclerView;

private

ArrayList<String>

titles

=

new

ArrayList<>();

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//初始化RecyclerView

recyclerView

=

(RecyclerView)

findViewById(R.id.recyclerView);

recyclerView.setLayoutManager(new

LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

for

(int

i

=

0;

i

<

20;

i++)

{

titles.add("標(biāo)題"+i);

}

recyclerView.setAdapter(new

RecyclerViewAdapter(this,titles));

}

}RecyclerViewAdapter的代碼:/

**

*

RecyclerView適配器

*/

public

class

RecyclerViewAdapter

extends

RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>

{

private

Context

context;

private

ArrayList<String>

datas;

class

ViewHolder

extends

RecyclerView.ViewHolder

{

ImageView

ivIcon;

TextView

tvTitle;

public

ViewHolder(View

itemView)

{

super(itemView);

ivIcon

=

(ImageView)

itemView.findViewById(R.id.iv_icon);

tvTitle

=

(TextView)

itemView.findViewById(R.id.tv_title);

}

}

public

RecyclerViewAdapter(Context

context,

ArrayList<String>

datas)

{

this.context

=

context;

this.datas

=

datas;

}

/**

*

相當(dāng)于getView方法中View和ViewHolder

*

*

@param

parent

*

@param

viewType

*

@return

*/

@Override

public

ViewHolder

onCreateViewHolder(ViewGroup

parent,

int

viewType)

{

View

itemView

=

View.inflate(context,

R.layout.item_recyclerview,

null);

RecyclerView.LayoutParams

lp

=

new

RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

itemView.setLayoutParams(lp);

return

new

ViewHolder(itemView);

}

/**

*

@param

holder

*

@param

position

*/

@Override

public

void

onBindViewHolder(ViewHolder

holder,

int

position)

{

//根據(jù)position得到對應(yīng)的數(shù)據(jù)

String

data

=

datas.get(position);

holder.tvTitle.setText(data);

}

/**

*

得到總條數(shù)

*

*

@return

*/

@Override

public

int

getItemCount()

{

return

datas.size();

}

}運(yùn)行之后是這樣的:很明顯,這個(gè)時(shí)候是沒有分割線的。3、添加默認(rèn)的分割線現(xiàn)在我們就來添加分割線,首先來試試最簡單的,也就是安卓自帶的分割線。只需要加一行代碼即可。//添加Android自帶的分割線

recyclerView.addItemDecoration(new

DividerItemDecoration(this,DividerItemDecoration.VERTICAL));addItemDecoration方法需要一個(gè)DividerItemDecoration的對象,而創(chuàng)建其對象時(shí),我們需要傳入上下文和分割線的方向。再運(yùn)行一下,就可以看到分割線出現(xiàn)了:4、自定義分割線有時(shí)候默認(rèn)的淺灰色的分割線并不能滿足我們的要求,這時(shí)我們就需要自己“寫”一條分割線了,那應(yīng)該怎么寫呢?打開DividerItemDecoration看看它的源碼,有這么一個(gè)函數(shù):

public

void

setDrawable(@NonNull

Drawable

drawable)

{

if

(drawable

==

null)

{

throw

new

IllegalArgumentException("Drawable

cannot

be

null.");

}

mDivider

=

drawable;

}我們只需要調(diào)用這個(gè)方法,然后傳入一個(gè)Drawable函數(shù)對象就可以了?,F(xiàn)在可以用shape來編寫一個(gè)分割線樣式:<?xml

version="1.0"

encoding="utf-8"?>

<shape

xmlns:android="/apk/res/android"

android:shape="rectangle">

<gradient

android:centerColor="#ff00ff00"

//綠色

android:endColor="#ff0000ff"

//藍(lán)色

android:startColor="#ffff0000"

//紅色

android:type="linear"

/>

<size

android:height="3dp"

/>

</shape>我這里弄的是一條騷氣的漸變色分割線。然后添加分割線的代碼改為如下://添加自定義分割線

DividerItemDecoration

divider

=

new

DividerItemDecoration(this,DividerItemDecoration.VERTICAL);

divider.setDrawable(ContextCompat.getDrawable(this,R.drawable.custom_divider));

recyclerView.addItemDecoration(divider);跑起來之后,就可以看到一條多彩的分割線了:這樣一來使用范圍就廣很多了,比如item之間需要一定的間隔,那么我們就可以加一條透明的分割線。5、總結(jié)添加分割線的代碼很簡單,以后需要加一條簡單的分割線時(shí)就可以這么處理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論