如何设置动态View的高度宽度

 我来答
百度网友5e7d60f
2017-05-16 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9522
采纳率:91%
帮助的人:1409万
展开全部

设置动态View的高度宽度有以下两种方法:

1. getHeight() 方法

这个方法必须要在View调用了onLayout方法后才能获得,为了监听onLayout方法,可以获得ViewTree观察者上的监听器来实现,具体代码为:

注意:关于removeGlobalOnLayoutListener这个方法过时,可以采用removeOnGlobalLayoutListener这个高API Level才支持的方法。

2. getMeasuredHeight() 方法

由方法的名字就可以得知这个方法必须要在View调用了onMeasure方法后才能获得,有一种快捷的方法可以通知系统主动测量View(调用onMeasure),代码如下:

注意:有些人使用measure(0,0)方法时抛空指针异常,这是因为view对象根节点的布局已经实现了onMeasure方法,比如RelativeLayout重写了onMeasure方法,可以换成LinearLayout这种没有重写此方法的布局,当然也可以在外再套一层LinearLayout,不过这样会增加布局层数,降低运行效率,这需要自行权衡。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式