Andorid学习笔记三:控件和布局

TextView

  • android:gravity指定文字的对齐方式

EditView

  • andorid:hint指定一段提示文本

可见属性:visibility

  • visible:(默认值)
  • invisible:组件不可见,但是占据原来的大小和空间
  • gone:不仅不可见,不占用任何空间

LinearLayout

  • 线性布局,分为vertical和horizontal两种
  • 如果布局是vertical,那么组件的高度就不能是match_parent,如果布局是horizontal,那么组件的宽度就不能是match_parent
  • andorid:layout_gravity指定控件在布局中的对齐方式
  • andorid:layout_weight指定控件的大小所占的比例

RelativeLayout

  • 相对布局,通过相对定位的方式让控件出现在布局的任何位置
  • andorid:layout_above
  • andorid:layout_below
  • andorid:toLeftOf
  • andorid:toRightOf

FrameLayout

  • 所有控件默认摆放在布局的左上角

控件和布局的继承结构

  • 所有控件都是直接或间接继承自View,所有的布局都是直接或间接继承自ViewGroup
  • View是一种基本的UI组件,可以在屏幕上绘制一块矩形区域,并能响应区域中的各种事件
  • ViewGroup则是一种特殊的View,包含很多子View和子ViewGroup

ListView

  • 借助适配器完成数据的传递
  • 自定义一个适配器继承自ArrayAdapter,需要重写getView()方法,该方法在每个子项被滚动到屏幕内的时候被调用,并返回一个填充好数据的View对象
  • 效率问题:
    • 每次都都将布局重新加载,成为性能瓶颈(使用convertView缓存布局)
    • 每次都通过findViewById()方法获取控件实例(ViewHolder缓存控件)

RecyclerView

  • 定义内部类ViewHolder,继承自RecyclerView.ViewHolder
  • 重写三个方法:
    • onCreateViewHolder():创建ViewHolder实例
    • onBindViewHolder():对RecyclerView子项的数据进行赋值,会在每个子项被滚动到屏幕内的时候执行
    • -getItemCount():一共有多少子项
  • 需要自己对子项具体的View注册点击事件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值