【移動(dòng)應(yīng)用開發(fā)技術(shù)】RecyclerView的使用方法與如何設(shè)置點(diǎn)擊監(jiān)聽_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】RecyclerView的使用方法與如何設(shè)置點(diǎn)擊監(jiān)聽_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】RecyclerView的使用方法與如何設(shè)置點(diǎn)擊監(jiān)聽_第3頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】RecyclerView的使用方法與如何設(shè)置點(diǎn)擊監(jiān)聽_第4頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】RecyclerView的使用方法與如何設(shè)置點(diǎn)擊監(jiān)聽_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】RecyclerView的使用方法與如何設(shè)置點(diǎn)擊監(jiān)聽

RecyclerView是ListView的衍生而來的,它比ListView效率更高,使用起來也更加方便。本文將會(huì)講解用RecyclerView如何實(shí)現(xiàn):垂直列表效果、橫向列表效果、網(wǎng)格列表效果、瀑布流(橫向與縱向),以及Item的點(diǎn)擊監(jiān)聽(因?yàn)镽ecyclerView沒有item的點(diǎn)擊監(jiān)聽功能,這里是我自創(chuàng)的,感覺還算好用)。效果還算強(qiáng)大吧?哈哈,下面看源碼(1)主布局

<?xml

version="1.0"

encoding="utf-8"?>

<RelativeLayout

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

android:layout_width="match_parent"

android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView

android:id="@+id/recyclerView"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

</RelativeLayout>(2)Item<?xml

version="1.0"

encoding="utf-8"?>

<LinearLayout

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TextView

android:id="@+id/tv"

android:textSize="60dp"

android:padding="20dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</LinearLayout>(3)MainActivity代碼public

class

MainActivity

extends

AppCompatActivity

{

private

RecyclerView

recyclerView;

private

String[]

ibsValue

=

{"直播",

"番劇",

"動(dòng)畫",

"音樂",

"舞蹈",

"游戲",

"科技",

"娛樂",

"鬼畜",

"電影",

"電視劇",

"游戲中心",};

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

recyclerView

=

(RecyclerView)

findViewById(R.id.recyclerView);

/**

*

設(shè)置固定尺寸

*/

recyclerView.setHasFixedSize(false);

/**

*

想用線性布局就用這個(gè)

*/

//LinearLayoutManager

linearLayoutManager=new

LinearLayoutManager(this);

/**

*

如果用線行布局的話,可以設(shè)置垂直/橫向

*/

//

linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);

/**

*

想用網(wǎng)格布局就用這個(gè)

*/

//GridLayoutManager

gridLayoutManager=new

GridLayoutManager(this,2);

/**

*

想用瀑布流布局就用這個(gè)

*/

StaggeredGridLayoutManager

staggeredGridLayoutManager

=

new

StaggeredGridLayoutManager(3,

StaggeredGridLayoutManager.HORIZONTAL);

/**

*

在這里選擇排列布局(用哪個(gè)就放進(jìn)來就行了)

*/

recyclerView.setLayoutManager(staggeredGridLayoutManager);

/**

*

設(shè)置適配器

*/

recyclerView.setAdapter(new

MyAdapter(ibsValue));

}

}(4)適配器Adapter/**

*

Created

by

Administrator

on

2015/11/15.

*/

public

class

MyAdapter

extends

RecyclerView.Adapter<MyAdapter.ViewHolder>{

/**

*

這里創(chuàng)建一個(gè)數(shù)組,準(zhǔn)備接收傳過來的數(shù)據(jù)

*/

public

String[]

datas;

/**

*

這里調(diào)用在創(chuàng)建MyAdapter實(shí)例的時(shí)候,可以將數(shù)據(jù)傳過來

*

@param

mdatas

*/

public

MyAdapter(String[]

mdatas){

datas=mdatas;

}

/**

*

這里加載加載Item,并且創(chuàng)建ViewHolder對(duì)象,把加載的Item(View)傳給viewholder

*

@param

parent

*

@param

viewType

*

@return

*/

@Override

public

ViewHolder

onCreateViewHolder(ViewGroup

parent,

int

viewType)

{

View

view=LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);

ViewHolder

viewHolder=new

ViewHolder(view,parent.getContext());

return

viewHolder;

}

/**

*

這里給item中的子View綁定數(shù)據(jù)

*

@param

holder

*

@param

position

*/

@Override

public

void

onBindViewHolder(ViewHolder

holder,

int

position)

{

holder.mTextView.setText(datas[position]);

}

/**

*

這里返回item數(shù)量

*

@return

*/

@Override

public

int

getItemCount()

{

return

datas.length;

}

/**

*

ViewHolder類,注意要繼承RecyclerView.ViewHolder

*/

public

static

class

ViewHolder

extends

RecyclerView.ViewHolder

implements

View.OnClickListener

{

public

TextView

mTextView;

public

Context

context;

public

ViewHolder(View

itemView,Context

context)

{

super(itemView);

mTextView=

(TextView)

itemView.findViewById(R.id.tv);

this.context=context;

itemView.setOnClickListener(this);

}

/**

*

這里可以設(shè)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論