Android学习|UI控件

《第一行代码》系列读书笔记

  1. ListView
  2. RecyclerView

1. ListView

  • 使用
    数据源准备->适配器加载数据源->控件加载适配器
    1.布局界面只需要一个ListView,设置好宽高和id就够了。

    2.定义一个实体类,作为ListView适配器的适配类型

    3.为ListView的子项制定一个我们自定义的布局

    4.创建一个适配器

    5.在Activity中创建适配器对象,然后把适配器对象传递给ListView

  • 提升ListView的运行效率

    1.在适配器里的getView()方法中,每次都将布局重新加载一遍,在快速滑动时,容易造成界面卡顿,影响用户体验。
    解决方法:利用getView()方法中的convertView参数,将之前加载好的布局进行缓存,以便之后可以进行重用。
    在这里插入图片描述
    2.在getView()中调用View的findViewByid()方法获取控件的实例,会重复获取,降低运行效率。
    解决方法:新增一个内部类ViewHolder,用于对控件的实例进行缓存
    在这里插入图片描述

  • ListView的点击事件

    ListView的每一项Item都是可以被监听的,监听器是OnItemClickListener,其中返回的参数position表示被点击的某项在整个List中的位置,从0算起。当点击ListView中的任何一个子项时,就会回调**onItemClick()**方法。

2.RecyclerView

相比于ListView,扩展性更好,能够实现横向滚动。

  • 使用
    添加依赖库,记得Sync Now进行同步

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

    使用方法和ListView类似
    1.布局界面只需要一个RecyclerView。

    2.定义一个实体类,作为RecyclerView适配器的适配类型

    3.为RecyclerView的子项制定一个我们自定义的布局

    4.创建一个适配器 适配器继承自RecyclerView.Adapter,则需要重写onCreateViewHolder()->创建ViewHolder实例,并把加载出来的布局传入到构造函数,最后将ViewHolder的实例返回。
    在这里插入图片描述
    onBindViewHolder()->用于对RecyclerView子项的数据进行赋值,会在每个子项被滚动到屏幕内的时候执行。
    在这里插入图片描述
    getItemCount()->一共有多少个子项。
    5.在Activity中创建适配器对象,然后把适配器对象传递给RecyclerView 在这里插入图片描述
    LayoutMnager用于指定RecyclerView的布局方式,LinearLayoutManager是线性布局,可以实现和ListView类似的效果。
    实现横向布局
    可以调用LinearLayoutManager的setOrientation()方法来设置布局的排列方式,默认是纵向排列,传入LinearLayoutManager.HORIZONTAL表示让布局横向排列。
    GridLayoutManager可以用于实现网格布局,StaggeredGridLayoutManager用于是想瀑布流布局

    RecyclerView的点击事件
    没有提供注册监听器的方法,需要给子项具体的View去注册点击事件。
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值