ListView控件以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。如图所示:
列表的显示需要三个元素:
- 1.ListVeiw:用来展示列表的View。
- 2.适配器:用来把数据映射到ListView上的中介。Adapter
- 3.数据:具体的将被映射的字符串,图片,或者基本组件。
根据列表的适配器类型,列表分为三种:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。
- ArrayAdapter最为简单,只能展示一行字,基本不用,或极少数时候使用。
- SimpleAdapter有最好的扩充性,可以自定义出各种效果。
- SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
在开发过程中,往往继承使用BaseAdapter,自己来实现各种需要实现的效果和数据适配。继承BaseAdapter类后,需要重写如下几个方法:
- getCount: 一共有多少个item展示项
- getItem(int position):获取每一个展示项
- getItemId(int position):获取item的id
- getView(int position, View convertView, ViewGroup parent):每一个在屏幕内展示的view视图
因为涉及到自定义View视图,因此往往会借助一个自定义的holder类来进行数据的刷新,事件的操作等。
数据更新
当数据源有更新时,需要重新设置适配器中的数据,同时调用适配器中的notifyDataSetChanged方法。
二、GridView
GridView 跟ListView 很类似,ListView 主要以列表形式显示数据,GridView 则是以网格形式显示数据。
GridView主要通过使用自定义BaseAdapter来适配数据,进而显示到GridView中。使用步骤:
- 1、准备数据源:通常是ArrayList形式。
list = new ArrayList<Map<String, Object>>(); - 2、为数据源设置适配器
MyAdapter adapter = new MyAdapter(); - 3、设置适配器
gridView.setAdapter(adapter);
与ListView相似,开发重点在如何自定义实现Adapter,以及如何实现交互。
三、RecyclerView
RecyclerView简介
RecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。
官方对RecyclerView的描述如中说到:A flexible view for providing a limited window into a large data set。
RecyclerView从2014年发布到现在已经很长时间了,使用已经相当普遍。
LayoutManager
使用上RecyclerView与Listview使用步骤基本相同,不同的是RecyclerView多了一个LayoutManager,翻译为布局管理器。
RecyclerView有三个默认布局管理器,他们分别是:
- LinearLayoutManager:线性管理器
- GridLayoutManager:网格管理器
- StaggeredGridLayoutManager:交错式网格布局
三个布局管理器都支持横向和纵向排列以及反向滑动。如果想把RecyclerView改为横向滑动,也可以通过调用:
mLayoutManager.setOrientation(GridLayoutManager.HORIZONTAL);
监听及点击事件
RecyclerView不像ListView一样提供item的点击监听,开发者需要自己实现,有两种常用的方式:
- 为item的view设置点击事件
- 通过recycler.addOnItemTouchListener监听
动画
recyclerview支持为item设置丰富的动画效果,可以通过如下方式设置动画:
recyclerView.setItemAnimator(new DefaultItemAnimator());
四、下拉刷新和上拉加载的原理
架构师筑基包括哪些内容
我花了将近半个月时间将:深入 Java 泛型.、注解深入浅出、并发编程.、数据传输与序列化、Java 虚拟机原理、反射与类加载、高效 IO、Kotlin项目实战等等Android架构师筑基必备技能整合成了一套系统知识笔记PDF,相信看完这份文档,你将会对这些Android架构师筑基必备技能有着更深入、更系统的理解。
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容
注:资料与上面思维导图一起看会更容易学习哦!每个点每个细节分支,都有对应的目录内容与知识点!
这份资料就包含了所有Android初级架构师所需的所有知识!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
//bbs.csdn.net/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!