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

就拿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中调用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值