读书笔记(六)RecyclerView And CardView相关
来源:互联网 发布:三国杀最强武将知乎 编辑:程序博客网 时间:2024/05/21 11:22
这周本来在看数据库相关的。。看到一半。想起列表还没做,又倒过来,
先来简单介绍一下
RecyclerView 和 CardView都是android5.0推出的新控件,可以在Support-V7包下找到这2个控件
RecyclerView是ListView的升级版,比起ListView更灵活,更有效率
该控件是一个可以装载大量的视图集合,并且可以非常效率的进行回收和滚动。当你list中的元素经常动态改变时可以使用RecyclerView控件。它提供了如下两个功能:
1、为每个条目位置提供了layout管理器(RecyclerView.setLayoutManager)
2、为每个条目设置了操作动画(RecyclerView.setItemAnimator)
RecyclerView。可以说他只关心它本身,比如假设列表的两种item里的布局要不一样,ListView我们就要一个一个改,RecyclerView的强大之处在于,他将item要引用哪个布局的主动权,交给了其本身。
再其次使用RecyclerView还可以很方便的做出左右滑动,瀑布流等,感兴趣的小伙伴可以在网上找找,有很多教程。
CardView:Google提供的一个卡片式视图组件。CardView继承自FrameLayout,允许你在Card视图中显示信息, CardView也可以设置阴影和圆角。使用它可以使我们的列表更好看
---------------------------------------------------------------------------------------------------
一,关于导入
感觉在这一步就已经被掏空。。网上关于导入的方法有很多。。不过我就成功了一种。
我们已经知道这两个控件的位置了,肯定会想直接添加外部JAR,但这个项目会提醒这是一个抽象的类。
所以我们不直接在构建路径里添加jar。
而是先直接Import这两个安卓项目
然后在导入项目的属性里把is library打上钩钩,这样就能在我们自己的项目里找到这个库并添加进来。
可能的问题:V7下面得V4包不兼容这两个控件,在JAR重新添加V4下的V4包
--------------------------------------------------------------------------------------------------
还遇到了无法运行和调试,不知道是不是中文版的原因。尝试了很多方法。终于找到有用的
在eclipse的安装目录下的plugins文件夹内,找到com.ibm.icu_4.4.2.v20110823.jar(版本号会因IDE版本不同而与此不符),在com.ibm.icu_4.4.2.v20110823.jar/com/ibm/icu/目录下找到ICUConfig.properties文件,用文本编辑器将其中的
com.ibm.icu.util.TimeZone.DefaultTimeZoneType = JDK
修改为
com.ibm.icu.util.TimeZone.DefaultTimeZoneType = ICU
然后保存文件退出,重启eclipse,大功告成
-----------------------------------------------------------------------------------------------------------------
配置好了直接就可以开始了,
RecyclerView的使用方法其实和ListView很像
XML 直接放个大框架,在item.xml里为他布局
<android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
item.xml
<android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:foreground="?android:attr/selectableItemBackground" android:clickable="true" app:cardCornerRadius="3dp" app:cardElevation="8dp"> <TextView android:id="@+id/text" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:maxLines="1" android:textSize="20sp" android:padding="5dp" android:textColor="#000000" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.v7.widget.CardView>
先整理卡片里的内容。上面的比较简单。假如是一个新闻列表,每个卡片里都有图片,文字等。我们要建一个数据类,来放这些到时候就直接传入数据类的对象,体现了良好的封装性和可操作性。因为只有一个文本,这里我们就直接
public static final List<String> data;
然后RecyclerView和ListView一样需要一个适配器,它的适配器和我们以往使用ListView的,它不是继承实现BaseAdapter而是去继承RecyclerView.Adapter<RecyclerViewViewHolder>,还需要实现3个方法:
- onCreateViewHolder()
- onBindViewHolder()
- getItemCount()
很明显- onCreateViewHolder()加载item的布局,onBindViewHolder()适配渲染数据到View,- getItemCount()获得卡片数量。
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.NewsViewHolder>{
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { . View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.p0item, viewGroup, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder viewHolder, int i) { viewHolder.text.setText(data.get(i)); } @Override public int getItemCount() { return data.size(); }
LinearLayoutManager layoutManager;
// 拿到RecyclerView recyclerView= (RecyclerView)homeView.findViewById(R.id.recyclerView); //添加数据 initData();// 初始化自定义的适配器 adapter=new RecyclerViewAdapter(newsList,getActivity());// 设置固定大小 recyclerView.setHasFixedSize(true);// 设置LinearLayoutManager recyclerView.setLayoutManager(layoutManager); // 设置适配器 recyclerView.setAdapter(adapter);
~这样就完成了RecyclerView的基本使用。接下来还可以考虑添加下拉刷新上拉加载等,谷歌官方推出的SwipeRefreshLayout(Support-V4包下)可以完成下拉刷新,GitHub上也有很多开源的项目
例如:https://github.com/vinaysshenoy/mugen
https://github.com/gabrielemariotti/cardslib
。。这提醒我们学会英文是多么重要。。。先给自己定个小目标。学他个一亿单词。。
- 读书笔记(六)RecyclerView And CardView相关
- Android RecyclerView And CardView
- RecyclerView and CardView
- Android --- Recyclerview and Cardview
- Android listView 替换技术 RecyclerView And CardView
- RecyclerView+CardView
- RecyclerView&CardView
- 学习RecyclerView和CardView
- RecyclerView、CardView实战
- RecyclerView CardView使用解析
- CardView,RecyclerView的使用
- RecyclerView结合CardView使用
- RecyclerView cardview点击效果
- RecyclerView+Cardview学习探索
- RecyclerView + CardView 基础练习
- RecyclerView,CardView导入AndroidStudio
- RecyclerView CardView使用解析
- CardView、RecyclerView简单使用
- 指针与数组的区别
- Spark性能优化第九季之Spark Tungsten内存使用彻底解密
- C语言中最常用标准库函数
- iOS内存分析总结
- RBO和CBO的基本概念
- 读书笔记(六)RecyclerView And CardView相关
- 《匠人精神》
- struts2 --- 输入验证Validation
- 起点
- MySQL存储引擎
- system.load和system.loadLibrary 网上反馈的问题
- [初级知识]linux内核的一些简介
- 对抗网络GAN
- ubuntu cdt binary not found