自定义组合控件

自定义组合控件

注:在组合控件中,子控件可能会抢夺焦点,Button,EditView,CheckBox等,选在在子或父添加属性

  1. 父节点: android:descendantFocusability=”blocksDescendants”属性
  2. 子节点: android:clickable=”false”(待定), android:focusable=”false”属性.

    • 需求 : 将组合界面的条目抽取为一个控件
    • 实现 :

      1. 把要抽取的部分单独放在一个布局文件当中
      2. 定义一个Java类, 继承抽取出来的布局文件中的根节点, 同时实现两个构造函数SettingsItemView(Context context)和SettingsItemView(Context context, AttributeSet attrs),第一个调用第二个
      3. 在SettingsItemView(Context context, AttributeSet attrs)中加载布局文件.
      4. 为控件指定自定义属性. 例如: 我们的这个控件,背景有三种, 内部的文本也不同, 而且有的有开关,有的没有开关. 可参考系统控件属性的定义方法来为我们的控件定义属性( android-sdk\platforms\android-23\data\res\values\attrs.xml ),格式为: <attr name="属性名称" format="属性类型"/> 属性名称定义的时候不要和系统原生控件的属性名重合.
        常见属性类型如下:
      属性类型名称属性类型
      color颜色
      boolean布尔类型
      string文本类型
      folat小数
      dimension尺寸类型(如100dp)
      reference引用类型(如@String)
      reference|color引用或者颜色
      1. 调用context.obtainStyledAttributes方法获取自定义的属性的值
      2. 在原布局中使用自定义控件. 注意: 自定义控件的属性命名空间要自己定义.
    • 代码 :

      1. 新建布局. 新建的布局就是多个原生控件的组合,把这些控件单独放在一个布局文件中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值