最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將替代ListView的RecyclerView 的使用詳解(一)

 更新時(shí)間:2016年07月20日 14:41:37   作者:by2n  
這篇文章主要介紹了將替代ListView的RecyclerView 的使用詳解(一)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

RecyclerView 是 android-support-v7-21 版本中新增的一個(gè) Widgets, 還有一個(gè) CardView 會(huì)在下次介紹使用。官方介紹 RecyclerView 是 ListView 的升級(jí)版本,更加先進(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:+' 
... 
}

開始

首先是布局文件中使用 RecyclerView

<RelativeLayout 
xmlns: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.RecyclerView 
android: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; 
} 
@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) 
{ 
// 創(chuàng)建一個(gè)View,簡(jiǎn)單起見直接使用系統(tǒng)提供的布局,就是一個(gè)TextView 
View view = View.inflate(viewGroup.getContext(), android.R.layout.simple_list_item_1, null); 
// 創(chuàng)建一個(gè)ViewHolder 
ViewHolder holder = new ViewHolder(view); 
return holder; 
} 
@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) 
{ 
// 綁定數(shù)據(jù)到ViewHolder上 
viewHolder.mTextView.setText(mDataset); 
} 
@Override 
public 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)單。

以上所述是小編給大家介紹的將替代ListView的RecyclerView 的使用詳解(一),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android中TextView自動(dòng)適配文本大小的幾種解決方案

    Android中TextView自動(dòng)適配文本大小的幾種解決方案

    在布局中使用的話,注意按照你最大的設(shè)備來(lái)設(shè)置字體大小,這樣在小設(shè)備上回自動(dòng)縮放,下面這篇文章主要給大家介紹了關(guān)于Android中TextView自動(dòng)適配文本大小的幾種解決方案,需要的朋友可以參考下
    2022-06-06
  • AndroidHttpClient詳解及調(diào)用示例

    AndroidHttpClient詳解及調(diào)用示例

    本文給大家介紹AndroidHttpClient結(jié)構(gòu)、使用方式及調(diào)用示例詳解,需要的朋友可以參考下
    2015-10-10
  • Android開發(fā)Jetpack組件Room使用講解

    Android開發(fā)Jetpack組件Room使用講解

    Room是一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)組件; 對(duì)SqLite數(shù)據(jù)庫(kù)做了友好的封裝,使我們?cè)诰幋a的時(shí)候,只需要注重邏輯的部分即可,數(shù)據(jù)庫(kù)就交給Room去流暢的訪問(wèn)即可
    2022-08-08
  • Android實(shí)現(xiàn)音樂視頻播放

    Android實(shí)現(xiàn)音樂視頻播放

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)音樂視頻播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • c++ mk文件出錯(cuò)Jni調(diào)用產(chǎn)生java.lang.UnsatisfiedLinkError錯(cuò)誤解決方法

    c++ mk文件出錯(cuò)Jni調(diào)用產(chǎn)生java.lang.UnsatisfiedLinkError錯(cuò)誤解決方法

    錯(cuò)誤產(chǎn)生在我把方法從c語(yǔ)言轉(zhuǎn)為c++語(yǔ)言后產(chǎn)生的,后來(lái)檢查到這種錯(cuò)誤是因?yàn)閙k文件出錯(cuò),加載c文件和加載c++的文件所用的代碼不一樣,下面請(qǐng)看
    2013-11-11
  • AndroidX下使用Activity和Fragment的變化詳解

    AndroidX下使用Activity和Fragment的變化詳解

    這篇文章主要介紹了AndroidX下使用Activity和Fragment的變化詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Android獲取SHA1的方法

    Android獲取SHA1的方法

    這篇文章主要介紹了Android獲取SHA1的方法,需要的朋友可以參考下
    2017-12-12
  • Android內(nèi)存泄漏導(dǎo)致原因深入探究

    Android內(nèi)存泄漏導(dǎo)致原因深入探究

    內(nèi)存管理的目的就是讓我們?cè)陂_發(fā)過(guò)程中有效避免我們的應(yīng)用程序出現(xiàn)內(nèi)存泄露的問(wèn)題。內(nèi)存泄露相信大家都不陌生,我們可以這樣理解:沒有用的對(duì)象無(wú)法回收的現(xiàn)象就是內(nèi)存泄露
    2023-02-02
  • android主線程和子線程之間消息傳遞詳解

    android主線程和子線程之間消息傳遞詳解

    這篇文章主要介紹了android主線程和子線程之間消息傳遞詳解,主線程發(fā)送消息到子線程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android中的ViewPager視圖滑動(dòng)切換類的入門實(shí)例教程

    Android中的ViewPager視圖滑動(dòng)切換類的入門實(shí)例教程

    Android中ViewPager通常與Fragments組件共同使用來(lái)實(shí)現(xiàn)視圖切換功能,本文就帶大家一起來(lái)學(xué)習(xí)Android中的ViewPager視圖滑動(dòng)切換類的入門實(shí)例教程:
    2016-06-06

最新評(píng)論

广西| 沁源县| 建平县| 开江县| 宝丰县| 新密市| 万安县| 泰顺县| 东宁县| 江孜县| 金堂县| 阜南县| 天水市| 祥云县| 辛集市| 隆子县| 论坛| 垣曲县| 杨浦区| 南靖县| 博客| 全椒县| 东平县| 沁阳市| 清丰县| 山东省| 永善县| 偏关县| 马边| 兴安盟| 阿克陶县| 宜兴市| 科技| 应城市| 石楼县| 波密县| 信阳市| 中阳县| 贵州省| 沽源县| 玉山县|