自定义的布局的布局属性的获取和子控件的属性的获取

  • Post author:
  • Post category:其他


就拿LinearLayout来说,布局文件里LinearLayout标签里的“android:orientation=“的值应该在LinearLayout的构造函数中获取:

在这里插入图片描述

而LinearLayout的子控件的layout_weight等的属性是在LinearLayout的内部属性类public static class LayoutParams extends ViewGroup.MarginLayoutParams中获取的

在这里插入图片描述

我自己写的自定义布局获取子控件的属性:

1、首先要重写generateLayoutParams方法

2、定义继承MarginLayoutParams的内部类CustomLayoutParams

3、在重写的generateLayoutParams方法里调用CustomLayoutParams的构造方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

而MarginLayoutParams的构造方法只在重写的generateLayoutParams方法里调用,查看ViewGroup中是在哪里调用generateLayoutParams的:

在这里插入图片描述

在addViewInner中调用,而

在这里插入图片描述

addViewInner是在addView中调用的。



版权声明:本文为weixin_43198185原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。