一.ViewPager
左右滑动页面的布局管理器,通过一个PagerAdapter来连接视图和数据
基本步骤:1.三个页面布局创d建,在主布局中添加viewPager
2.数据源:三个布局依靠inflate方法转成对象添加到List中
3.视图:viewPager对象pager通过findViewById绑定
4.适配器里:创建适配器继承PagerAdapter
重写方法getConut(),返回的是页卡数量
isViewFromObject,判断当前View是否来自对象
带参构造
5.MainActivity中实例化构造器传入参数
6.pager.setAdapter(适配器)
FragmentPagerAdapter最适用于那种少量且相对静态的页面
二.ListView
显示列表的控件
数据源,适配器,视图
三.GridView
在界面上按行,列分布方式来显示多个组件
属性:numColumns每一行显示多少列
horizontalSpacing 两列之间的间距
verticalSapcing 两行之间的间距
四.RecyclerView
只关心item的创建与回收,所以流畅度很好
基本使用:
1. 主xml中添加RecyclerView控件,设置id。在activity中创建控件对象recyclerview后用id绑定。创建布局item,在activity中建数据源
2. 新建一个类MyAdapter继承RecyclerView.Adapter,泛型为自定义继承自RecyclerView.ViewHolder的内部类MyViewHolder。
3. 内部类MyViewHolder中,在构造方法里进行item中控件对象与其id的绑定。
4. MyAdapter中三个方法需要重写,getItemCount()返回数据源长度即可
5. onCreatViewHolder,通过inflater将自定义的item布局转换为View对象,再将该对象与ViewHolder关联,并返回:
MyViewHolder holder=new MyViewHolder(对象),returnholder
6. onBindViewHolder是真正将数据源与视图关联起来了,根据传入的position拿到数据源中item的各项数据,并通过holder的各个属性设置相应数据:例如TextView textview
holder.textview.setText(数据源.get(position))
7. 回到activity,数据源放入new Adapter中,recyclerview.setAdapter(MyAdapter)。
8. LinearLayoutManager 线性的布局,有HORIZONTAL和VERTICAL两种,可以实现普通的ListView的效果与横向ListView的效果GridLayoutManager 实现之前GridView的效果 StaggeredGridLayoutManager 实现瀑布流的效果
代码例子:LinearLayoutManager llm =new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
9. 使用LayoutManager来设置RecyclerView布局样式recyclerview.setLayoutMagager(llm)。