viewStub使用注意点

因特殊需求需要手动设置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,则其宽高默认跟父容器的宽高相同

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容