日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

将替代ListView的RecyclerView 的使用(一)

發(fā)布時(shí)間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将替代ListView的RecyclerView 的使用(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主同意不得轉(zhuǎn)載。 https://blog.csdn.net/by317966834/article/details/36205923

RecyclerView 是 android-support-v7-21 版本號(hào)中新增的一個(gè) Widgets, 另一個(gè) CardView 會(huì)在下次介紹使用。官方介紹 RecyclerView 是 ListView 的升級(jí)版本號(hào),更加先進(jìn)和靈活。我們寫一個(gè)簡(jiǎn)單的實(shí)例例。來(lái)看一下到底有多先進(jìn)和靈活。

build.gradle 配置

android { compileSdkVersion 'android-L' buildToolsVersion "20.0.0" defaultConfig { minSdkVersion 'L' targetSdkVersion 'L' ... } ... } dependencies { compile 'com.android.support:recyclerview-v7:+' ... }


開(kāi)始

?

首先是布局文件里使用 RecyclerView

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MyActivity" ><android.support.v7.widget.RecyclerViewandroid:id="@+id/recyclerView"android:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="vertical" /></RelativeLayout>

Activity 中

?

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); // 創(chuàng)建一個(gè)線性布局管理器 LinearLayoutManager layoutManager = new LinearLayoutManager(this); // 設(shè)置布局管理器 recyclerView.setLayoutManager(layoutManager); // 創(chuàng)建數(shù)據(jù)集 String[] dataset = new String[100]; for (int i = 0; i < dataset.length; i++){ dataset = "item" + i; } // 創(chuàng)建Adapter,并指定數(shù)據(jù)集 MyAdapter adapter = new MyAdapter(dataset); // 設(shè)置Adapter recyclerView.setAdapter(adapter); }



?

RecyclerView 首先的一個(gè)特點(diǎn)就是,將 layout 抽象成了一個(gè) LayoutManager,RecylerView 不負(fù)責(zé)子 View 的布局,我們能夠自己定義 LayoutManager 來(lái)實(shí)現(xiàn)不同的布局效果。眼下僅僅提供了LinearLayoutManager。 LinearLayoutManager 能夠指定方向,默認(rèn)是垂直, 能夠指定水平, 這樣就輕松實(shí)現(xiàn)了水平的 ListView。


接下來(lái)看 Adapter 是怎么實(shí)現(xiàn)的

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {// 數(shù)據(jù)集private String[] mDataset;public MyAdapter(String[] dataset){super();mDataset = dataset;}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i){// 創(chuàng)建一個(gè)View,簡(jiǎn)單起見(jiàn)直接使用系統(tǒng)提供的布局。就是一個(gè)TextViewView view = View.inflate(viewGroup.getContext(), android.R.layout.simple_list_item_1, null);// 創(chuàng)建一個(gè)ViewHolderViewHolder holder = new ViewHolder(view);return holder;}@Overridepublic void onBindViewHolder(ViewHolder viewHolder, int i){// 綁定數(shù)據(jù)到ViewHolder上viewHolder.mTextView.setText(mDataset);}@Overridepublic int getItemCount(){return mDataset.length;}public static class ViewHolder extends RecyclerView.ViewHolder{public TextView mTextView;public ViewHolder(View itemView){super(itemView);mTextView = (TextView) itemView;}}}


?

RecyclerView 的另一個(gè)特點(diǎn)是標(biāo)準(zhǔn)化了 ViewHolder。 編寫 Adapter 面向的是 ViewHoder 而不在是View 了, 復(fù)用的邏輯被封裝了。 寫起來(lái)更加簡(jiǎn)單。



?

RecyclerView 簡(jiǎn)單使用之后, 發(fā)現(xiàn)確實(shí)靈活了非常多, RecyclerView 的特性還有非常多。 下一篇文章再繼續(xù)探索,未完待續(xù)

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/mqxnongmin/p/10721303.html

總結(jié)

以上是生活随笔為你收集整理的将替代ListView的RecyclerView 的使用(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。