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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

踏平RecyclerView使用的各种坑,跟ListView和GridView说拜拜

發(fā)布時間:2024/4/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 踏平RecyclerView使用的各种坑,跟ListView和GridView说拜拜 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RecyclerView是谷歌推出的新View,使用和listview差不多。

在此之前推薦一本書:跟著敲一遍你能從中級變高級,從習(xí)慣eclipse變成使用Android studio大神。


但是RecyclerView對于初學(xué)者還是有點難度,下面以最簡短的代碼讓你一眼明白并牢記RecyclerView的使用方法

mRecyclerView = findViewById(R.id.id_recyclerview); //設(shè)置布局管理器 mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); //設(shè)置adapter mRecyclerView.setAdapter(adapter) //設(shè)置Item增加、移除動畫 mRecyclerView.setItemAnimator(new DefaultItemAnimator()); //添加分割線 mRecyclerView.addItemDecoration(new MyItemDecoration(this, MyItemDecoration.HORIZONTAL));
只有這四個方法簡單嗎??、

特別需要做的是寫自己的adapter

使用步驟:

①創(chuàng)建RecyclerView 對象

②設(shè)置適配器adapter

完成了。。。。

所以只要會寫adapter就會用RecyclerView了

最簡單的使用demo可參考http://blog.csdn.net/gfg156196/article/details/51727783

使用中的過程總結(jié):

①導(dǎo)包,請導(dǎo)入RecyclerView的包,不要選擇V7包。

compile 'com.android.support:recyclerview-v7:25.0.1'

②創(chuàng)建自己的adapter

/*** Created by yugu88 on 2016/11/29.15:14* 注意點:必須使用泛型Adapter<RecHoder>*/public class RecAdapter extends RecyclerView.Adapter<RecHoder> {Activity content;String[] menu_text;public RecAdapter(Activity content, String[] menu_text) {this.content=content;this.menu_text=menu_text;}/*** @return RecHoder 修改此返回類型為自己定義的ViewHolder*/@Overridepublic RecHoder onCreateViewHolder(ViewGroup parent, int viewType) {LayoutInflater layoutInflater=LayoutInflater.from(content);View view=layoutInflater.inflate(R.layout.adapter_listview_menu, parent, false);return new RecHoder(view);//創(chuàng)建自己的ViewHolder并返回此對象}/*** @param holder 修改此ViewHolder的類型為自己定義的RecHoder*/@Overridepublic void onBindViewHolder(RecHoder holder, final int position) {holder.tv_menu.setText(menu_text[position]);Log.e("getItemCount",position+"");holder.tv_menu.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {}});}@Overridepublic int getItemCount() {return menu_text.length;}}

③創(chuàng)建自己的ViewHolder

/*** Created by yugu88 on 2016/11/29.15:52*/public class RecHoder extends RecyclerView.ViewHolder {public TextView tv_menu;public RecHoder(View itemView) {super(itemView);tv_menu=(TextView) itemView.findViewById(R.id.tv_menu);} }

④在Activity中使用RecyclerView

listview_menu=(RecyclerView) findViewById(R.id.listview_menu); listview_menu.setLayoutManager(new LinearLayoutManager(this));// 此句最最重要LinearLayoutManager就是listview類型的 //listview_menu.setLayoutManager(new GridLayoutManager(this,4));// 此為GridView類型的視圖 4列 //創(chuàng)建adapter對象 RecAdapter recAdapter=new RecAdapter(this, menu_text); //設(shè)置adapter listview_menu.setAdapter(recAdapter);

setLayoutManager();的參數(shù)有如下幾種:

LinearLayoutManager 線性管理器。支持橫向、縱向。

GridLayoutManager 網(wǎng)格布局管理器
StaggeredGridLayoutManager 瀑布就式布局管理器

如果需要分割線:

// 第二個參數(shù)是橫線或者豎線的意思 listview_menu.addItemDecoration(new RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL));

可以在setAdapter(recAdapter)之前或者之后都可以。

LinearLayoutManager.HORIZONTAL 表示分割線是橫著畫的,一般用在垂直滾動的listview。如下。


addItemDecoration該方法的參數(shù)為RecyclerView.ItemDecoration,該類為抽象類,我們需要繼承它寫一個自己的類。

它的源碼很短,如下:

public static abstract class ItemDecoration {public void onDraw(Canvas c, RecyclerView parent, State state) {onDraw(c, parent);}@Deprecatedpublic void onDraw(Canvas c, RecyclerView parent) {}public void onDrawOver(Canvas c, RecyclerView parent, State state) {onDrawOver(c, parent);}@Deprecatedpublic void onDrawOver(Canvas c, RecyclerView parent) {}@Deprecatedpublic void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {outRect.set(0, 0, 0, 0);}public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state) {getItemOffsets(outRect, ((LayoutParams) view.getLayoutParams()).getViewLayoutPosition(),parent);}}

方法都沒有實現(xiàn),我們繼承它實現(xiàn)自己的方法即可。

注意:onDraw方法,使用帶有State state參數(shù)的方法。。

具體的畫線的類如何寫可以參考http://www.cnblogs.com/huolongluo/p/5879292.html

如果你實在是懶得寫分割線,可以直接把別人的分割線類拿來使用。。。



總結(jié)

以上是生活随笔為你收集整理的踏平RecyclerView使用的各种坑,跟ListView和GridView说拜拜的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品久久不卡 | 97爱爱| 亚洲自拍偷拍网站 | 男女午夜视频在线观看 | 91亚洲国产成人精品一区二区三 | 99人人爽 | 97精品视频 | 亚洲一级理论片 | 日本在线观看免费 | 国产黄色美女视频 | 亚洲精品综合在线观看 | 噼里啪啦国语版在线观看 | 波多野结衣一二三区 | 永久免费精品视频 | 人妻丰满熟妇岳av无码区hd | 夜夜夜网 | 国产精品综合久久久 | 国产精品乱码一区二区 | ass极品国模人体欣赏 | 青青草一区| 日韩成人一级 | 日韩a级片| 亚洲1页 | 男生女生搞鸡视频 | 欧美日韩免费观看一区=区三区 | 亚洲特级毛片 | 97人妻精品一区二区三区 | 国产亚洲电影 | 五月激情开心网 | 香蕉久久夜色精品国产使用方法 | 天天躁日日躁aaaxxⅹ | 在线日韩中文字幕 | 亚洲香蕉久久 | 两个人看的www视频免费完整版 | 希岛婚前侵犯中文字幕在线 | 麻豆免费av | 日韩免费av在线 | k8yy毛片| 色眯眯影院 | 人人入人人 | 国产传媒第一页 | 日本中文在线视频 | 视色网 | 特黄在线| 国产一区二区福利 | 大伊人网 | 人妻精品久久久久中文字幕69 | 婷婷亚洲一区 | 亚洲欧美小视频 | 91免费影片 | 一本无码aⅴ久久久国产 | 色人阁在线视频 | 天天综合天天做 | 看片网址国产福利av中文字幕 | 黄瓜视频在线观看 | 国产视频在线观看免费 | 日本高清视频免费观看 | 国产精品亚洲一区二区三区 | 一区二区三区免费网站 | 久久精品国产亚洲av蜜臀色欲 | 国产另类自拍 | 人人看人人插 | 波多野结衣在线电影 | 美女国产在线 | 国产高清在线 | 日韩激情成人 | 毛片www| 岛国av在线 | 国产乱码精品一品二品 | 日韩在线观看不卡 | 少妇人妻好深好紧精品无码 | 成人一级视频在线观看 | 久久久久亚洲av无码专区体验 | 久久精品天天中文字幕人妻 | 热久久免费视频 | 欧美精品免费在线 | 成人h动漫精品一区二区无码 | 国产盗摄在线观看 | 少妇饥渴放荡91麻豆 | 国产一级性生活 | 国产精品国产精品国产专区不片 | 麻豆国产精品视频 | 亚洲熟悉妇女xxx妇女av | av男女| 一区二区乱子伦在线播放 | 亚洲色图2 | 国产又粗又黄又猛 | 男女日日 | 国产精品无码av无码 | 天天干天天操天天碰 | 成人黄色网 | 午夜免费福利小电影 | 九九热在线播放 | 网址你懂的在线 | 国产情侣一区二区 | 五月激情在线观看 | 超碰97国产 | 视频一区二区在线播放 | 女同性做爰全过程 |