viewStub使用注意点

作者: 幸福的程序媛 | 来源:发表于2015-10-28 15:57 被阅读1007次

    因特殊需求需要手动设置listview的高度值,listview的item里面有的item有的item使用了viewStub,来只在需要的时候infalte出布局,此时必须将viewStub的layout_height设置为固定值,如果使用wrap_content,即使在android:layout="@layout/inflated_layout"的inflated_layout里面的根布局指定具体高度,实际inflate出来的高度不是里面根布局指定的高度,在华为上测试inflate出来的布局高度大于根布局设置的具体高度.

    这个问题导致我设置的listview的高度一直不准确,虽然是小知识点,但却困扰了我一天.仅此记录一下.

    正确写法:

    ```

    <ViewStub

    android:layout_width="match_parent"

    android:layout_height="30dp"

    android:id="@+id/viewStub"

    android:layout="@layout/linear_inflated"/>

    ```

    错误写法:

    <ViewStub

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:id="@+id/viewStub"

    android:layout="@layout/linear_inflated"/>

    结论:

    ViewStub使用wrap_content设置layout_height,inflate出来的view所占的实际高度并非inflate的布局文件设置的高度,可能要大于它.

    如果有同样需要手动设置listview高度的同学可以注意一下,感觉android在一些小地方经常有坑.

    2016.11.15更新:

    自定义View如果layout_height或者layout_width设置为wrap_content,则其宽高默认跟父容器的宽高相同

    相关文章

      网友评论

      本文标题:viewStub使用注意点

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