Android(安卓)L中的RecyclerView 、CardView 、Palette的使用
1.RecyclerView
2.CardView
3.Palette
《Material Design》(http://www.linuxidc.com/Linux/2014-09/106824.htm)提到,AndroidL版本中新增了RecyclerView、CardView 、Palette。RecyclerView、CardView为用于显示复杂视图的新增Widget。Palette作为调色板类,可以让你从图像中提取突出的颜色。
RecyclerView
RecyclerView作为替代ListView使用,RecyclerView标准化了ViewHolder,ListView中convertView是复用的,在RecyclerView中,是把ViewHolder作为缓存的单位了,然后convertView作为ViewHolder的成员变量保持在ViewHolder中,也就是说,假设没有屏幕显示10个条目,则会创建10个ViewHolder缓存起来,每次复用的是ViewHolder,所以他把getView这个方法变为了onCreateViewHolder。 ViewHolder更适合多种子布局的列表,尤其IM的对话列表。RecyclerView不提供setOnItemClickListener方法,你可以在ViewHolder中添加事件。RecyclerView的使用可以参考《Material Design UI Widgets》http://www.linuxidc.com/Linux/2014-09/106840.htm。
RecyclerView可以实现横向、纵向滑动视图:
RecyclerView 1
RecyclerView 2
设置横向:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view_horizontal);
// specify an adapter (see also next example)
List<MyAdapter.Item> itemList = new ArrayList<MyAdapter.Item>();
for (int i = 0; i < 100; i++)
itemList.add(new MyAdapter.Item("Item " + i, "world"));
mAdapter = new MyAdapter(itemList);
mRecyclerViewHorizontal = (RecyclerView) findViewById(R.id.my_recycler_view_horizontal);
mRecyclerViewHorizontal.setHasFixedSize(true);
// use a linear layout manager
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerViewHorizontal.setLayoutManager(mLayoutManager);
mRecyclerViewHorizontal.setAdapter(mAdapter);
}
更多相关文章
- Android内存泄漏的原因及解决技巧
- Android:解决ViewPager和(RecyclerView、HorizontalScrollView)内部
- Android(安卓)LruCache源码详解
- 【Android】音乐播放器边播边缓存(二)AndroidVideoCache的后台播放
- android 内存和性能优化汇总
- Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运
- Android绘图机制(四)自定义控件
- Android(安卓)View架构总结
- 性能优化系列总篇