就拿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 版权协议,转载请附上原文出处链接和本声明。