美文网首页
自定义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