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

RecyclerView的使用之HelloWorld

 更新時間:2016年03月09日 09:53:46   投稿:mrr  
RecyclerView是伴隨Android 5.0發(fā)布的新控件,是一種列表容器,Google意在用新的RecyclerView來取代老舊的ListView和GridView,它的使用靈活性和性能都要優(yōu)于ListView,通過本文給大家介紹RecyclerView的使用之HelloWorld,需要的朋友參考下

話說RecyclerView已經(jīng)面市很久,也在很多應(yīng)用中得到廣泛的使用,在整個開發(fā)者圈子里面也擁有很不錯的口碑,那說明RecyclerView擁有比ListView,GridView之類控件有很多的優(yōu)點,例如:數(shù)據(jù)綁定,Item View創(chuàng)建,View的回收以及重用等機制。

RecyclerView是伴隨Android 5.0發(fā)布的新控件,是一種列表容器,Google意在用新的RecyclerView來取代老舊的ListView和GridView,它的使用靈活性和性能都要優(yōu)于ListView,接下來通過一系列文章來了解RecyclerView的各種使用方法,本篇來介紹它的初步使用,RecyclerView的“HelloWord“。

RecyclerView與傳統(tǒng)ListView的區(qū)別:

1:ViewHolder模式,傳統(tǒng)的ListView可以通過ViewHolder來提升列表滾動的性能,但是這不是必須的,因為ListView沒有嚴(yán)格標(biāo)準(zhǔn)的設(shè)計模式,但是在使用RecyclerView的時候Adapter必須實現(xiàn)至少一個ViewHolder,因為它有著嚴(yán)格的ViewHolder設(shè)計模式。

2:顯示效果,ListView只能實現(xiàn)垂直的滾動列表視圖,相反,RecyclerView可以通過設(shè)置RecyclerView.LayoutManager來定制不同風(fēng)格的視圖,比如水平滾動列表或者不規(guī)則的瀑布流列表。

3:列表項動畫, 在ListView中沒有提供任何方法或接口,方便開發(fā)者實現(xiàn)Item的增刪動畫。RecyclerView可以通過設(shè)置的RecyclerView.ItemAnimator來為條目增加動畫效果。

本文以實現(xiàn)下面這個小Demo來了解RecyclerView的初步使用

這里寫圖片描述

*圖片素材版權(quán)歸屬于Smartisan.com

1:依賴庫 (本文以Android Studio作為開發(fā)工具)

Gradle配置
compile 'com.android.support:recyclerview-v7:23.1.1'

2:建立Layout,與ListView類似,在布局里面添加RecyclerView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rv_list"
/>
</LinearLayout>

3:建立RecyclerView Item布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:id="@+id/cv_item"
android:foreground="?android:attr/selectableItemBackground"
card_view:cardCornerRadius="4dp"
card_view:cardBackgroundColor="#795548"
card_view:cardElevation="4dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ImageView
android:id="@+id/iv_pic"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_weight="1"
/>
<TextView
android:id="@+id/tv_text"
android:padding="20dp"
android:textColor="#ffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</android.support.v7.widget.CardView>

這里使用了一個叫CardView的控件,繼承自FrameLayout,它是Google提供的一個卡片式視圖容器,可以很方便的顯示出具有陰影和圓角的卡片式布局,像這樣

這里寫圖片描述 

CardView跟RecyclerView一樣使用前也需要進(jìn)行導(dǎo)入

compile 'com.android.support:cardview-v7:23.1.1'

4:然后建立RecyclerView的Adapter

import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by Lijizhou on 2016/2/3.
*/
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.NormalViewHolder> {
private LayoutInflater mLayoutInflater;
private Context mContext;
private String [] mTitle;
private int [] mPic;
public RecyclerViewAdapter(Context context,String[]title,int[] pic){
mContext=context;
mTitle=title;
mPic=pic;
mLayoutInflater=LayoutInflater.from(context);
}
//自定義的ViewHolder,持有每個Item的的所有界面元素
public static class NormalViewHolder extends RecyclerView.ViewHolder{
TextView mTextView;
CardView mCardView;
ImageView mImageView;
public NormalViewHolder(View itemView) {
super(itemView);
mTextView=(TextView)itemView.findViewById(R.id.tv_text);
mCardView=(CardView)itemView.findViewById(R.id.cv_item);
mImageView=(ImageView)itemView.findViewById(R.id.iv_pic);
}
}
//在該方法中我們創(chuàng)建一個ViewHolder并返回,ViewHolder必須有一個帶有View的構(gòu)造函數(shù),這個View就是我們Item的根布局,在這里我們使用自定義Item的布局;
@Override
public NormalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new NormalViewHolder(mLayoutInflater.inflate(R.layout.item_view,parent,false));
}
//將數(shù)據(jù)與界面進(jìn)行綁定的操作
@Override
public void onBindViewHolder(NormalViewHolder holder, final int position) {
holder.mTextView.setText(mTitle[position]);
holder.mImageView.setBackgroundResource(mPic[position]);
holder.mCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext,mTitle[position],3000).show();
}
});
}
//獲取數(shù)據(jù)的數(shù)量
@Override
public int getItemCount() {
return mTitle==null ? 0 : mTitle.length;
}
}

5:RecycleViewActivity.java

public class RecycleViewActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
//item 顯示所需
private String[] title = {"Blog : http://blog.csdn.net/Leejizhou.",
"A good laugh and a long sleep are the best cures in the doctor's book.",
"all or nothing, now or never ",
"Be nice to people on the way up, because you'll need them on your way down.",
"Be confident with yourself and stop worrying what other people think. Do what's best for your future happiness!",
"Blessed is he whose fame does not outshine his truth.",
"Create good memories today, so that you can have a good past"
};
/**
* 圖片資源版權(quán)歸屬于Smartisan.com
*/
private int[] pic = {R.mipmap.aa1, R.mipmap.aa0, R.mipmap.aa2, R.mipmap.aa3, R.mipmap.aa4, R.mipmap.aa5, R.mipmap.aa6};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycle);
mRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
// 創(chuàng)建一個線性布局管理器
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
//設(shè)置垂直滾動,也可以設(shè)置橫向滾動
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//另外兩種顯示模式
// mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); Grid視圖
// mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, OrientationHelper.VERTICAL)); 這里用線性宮格顯示 類似于瀑布流
//RecyclerView設(shè)置布局管理器
mRecyclerView.setLayoutManager(layoutManager);
//RecyclerView設(shè)置Adapter
mRecyclerView.setAdapter(new RecyclerViewAdapter(this, title, pic));
}
}

相關(guān)文章

  • Android7.0 工具類:DiffUtil詳解

    Android7.0 工具類:DiffUtil詳解

    這篇文章主要介紹了Android7.0 工具類:DiffUtil的相關(guān)資料,并附實例代碼,和實現(xiàn)效果圖,需要的朋友可以參考下
    2016-09-09
  • Android利用SurfaceView實現(xiàn)下雨的天氣動畫效果

    Android利用SurfaceView實現(xiàn)下雨的天氣動畫效果

    這篇文章主要介紹了Android利用SurfaceView實現(xiàn)下雨天氣效果的相關(guān)資料,文中詳細(xì)介紹 SurfaceView 和 View 的區(qū)別,以及一些需要使用到 SurfaceView 的場景。需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Android繪制平移動畫的示例代碼

    Android繪制平移動畫的示例代碼

    這篇文章主要展示的是利用Android繪制平移動畫的示例代碼,文中的實現(xiàn)步驟講解詳細(xì),對我們學(xué)習(xí)Android有一定的幫助,感興趣的可以試一試
    2022-01-01
  • Android自定義控件通用驗證碼輸入框的實現(xiàn)

    Android自定義控件通用驗證碼輸入框的實現(xiàn)

    這篇文章主要介紹了Android自定義控件通用驗證碼輸入框的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Android自定義PasswordInputView密碼輸入

    Android自定義PasswordInputView密碼輸入

    這篇文章主要為大家詳細(xì)介紹了Android自定義PasswordInputView密碼輸入功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android Toast實現(xiàn)全屏顯示

    Android Toast實現(xiàn)全屏顯示

    這篇文章主要為大家詳細(xì)介紹了Android Toast實現(xiàn)全屏顯示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • android仿音悅臺頁面交互效果實例代碼

    android仿音悅臺頁面交互效果實例代碼

    這篇文章主要介紹了android 仿音悅臺頁面播放效果實例代碼,新版的音悅臺 APP 播放頁面交互非常有意思,可以把播放器往下拖動,然后在底部懸浮一個小框,還可以左右拖動。
    2017-01-01
  • 深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請求

    深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請求

    本篇文章主要介紹了深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請求,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Android實現(xiàn)動態(tài)曲線繪制

    Android實現(xiàn)動態(tài)曲線繪制

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)動態(tài)曲線繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Android實現(xiàn)截屏方式整理(總結(jié))

    Android實現(xiàn)截屏方式整理(總結(jié))

    本篇文章主要介紹了Android 截屏方式整理(總結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論

海安县| 孝义市| 沂源县| 灵台县| 洞口县| 花莲市| 嫩江县| 麻阳| 长岭县| 江安县| 宽城| 怀来县| 泰安市| 太白县| 旬邑县| 息烽县| 遂溪县| 石门县| 江川县| 江津市| 十堰市| 塔河县| 侯马市| 花莲县| 射洪县| 盘锦市| 宝山区| 瑞安市| 昌黎县| 合山市| 扎赉特旗| 浠水县| 铜鼓县| 兴和县| 独山县| 霍邱县| 晋城| 靖安县| 都江堰市| 津南区| 保德县|