美文网首页
2019-12-18

2019-12-18

作者: ambe_gzy | 来源:发表于2019-12-19 10:08 被阅读0次

    自定义组件

    自定义view分类(四种)

    • 继承view重写onDraw方法
      主要用于实现一些不规则效果,这种效果不方便使用排列组合来达到,往往需要静态或者动态显示一些不规则图形。采用这种方法需要自己支持wrap_content,padding也需要自己处理。
    • 继承viewGroup派生特殊的layout
      这种方式主要用于实现自定义布局,需要合适地处理ViewGroup的测量和布局两个过程,并同时处理子元素的测量和布局过程。
    • 继承特定的View
      这种方式比较常见,一般是扩展某种已有的View,比如TextView,这种方法比较容易实现,不需要自己支持wrap_content和padding等。
    • 继承特定的ViewGroup(比如LinearLayout)
      当某种效果看起来很像几种View组合在一起的时候,可以采用这种方法实现。采用这种方法不需要自己处理ViewGroup的测量和布局,需要注意本方法和方法2的区别,一般来说方法2能实现的效果方法4也都能实现,两者的主要差别在于方法2更接近View的底层。

    参考:android view(4) 自定义组件


    本文将对第四点:继承特定的ViewGroup进行学习与总结

    • 自定义view默认调用第二个构造方法,因此在第二个构造方法进行相关代码的处理
      原因:Android View 四个构造函数详解

    • 自定义属性,在attrs.xml文件下定义相关属性


      image.png
    • 在自定义view中获取自定义属性


      image.png

    遇到问题

    • 在xml中使用自定义view无代码自动补全功能,包括android属性也不显示
      解决方法:将自定义view与其使用的地方放到同一个model中。原因:https://www.jianshu.com/p/77c18a66dfe3

    相关文章

      网友评论

          本文标题:2019-12-18

          本文链接:https://www.haomeiwen.com/subject/dsdunctx.html