美文网首页
自定义ViewGroup时,嵌套ViewGroup子view不显

自定义ViewGroup时,嵌套ViewGroup子view不显

作者: Allenlll | 来源:发表于2019-11-03 18:56 被阅读0次

一、问题

如图所未布局:ImageView显示不出来。


image.png

二、线索

1、CustomViewGroup的onlayout中计算的参数,left,top,right,bottom大小正确。
2、FrameLayout中onLayout中left,top,right,bottom大小正确,onMeasure大小不正确,是CusotmViewGroup的宽高。由此分析可能原因是FrameLayout中onMeasure没有正确执行。
3、查看FrameLayout中onMeasure源码可以知道,onMeasure的计算和子view的宽高模式有关。

三、解决办法

1、把ImageView的布局属性换成wapcontent。值得注意的是通过代码创建ImgeView时,默认的LayoutParam是matchcontent的。
2、在FrameLayout的onMeasure时用FrameLayout的宽高再次measureChildern一次。
总结:自定义ViewGroup和自定义View的onLayout和onMeasure容易弄混,但主要也就是一个测量和排放的问题,特别要注意ViewGroup中OnMeasure时对SepctMode的处理。

相关文章

网友评论

      本文标题:自定义ViewGroup时,嵌套ViewGroup子view不显

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