Android之LayoutInflater了解(20190109)
16lz
2021-01-26
Android之LayoutInflater了解(20190109)
https://www.cnblogs.com/tangs/articles/5913719.html
inflate方法简单说明
/** resource : 布局的资源ID,生成fragment视图 root : 视图的父视图,通常我们需要父视图来正确配置组件 attachToRoot : 告知布局生成器是否将生成的视图添加给父视图 */inflate(int resource, ViewGroup root, boolean attachToRoot)
当root有值:
- 如果attachToRoot为true,就直接将这个布局添加到root父布局了,并且返回的view就是父布局
- 如果attachToRoot为false,就不会添加这个布局到root父布局,返回的view为resource指定的布局
当root为null:
- 如果root为null,attachToRoot将失去作用,设置任何值都没有意义。同时这个布局的最外层参数就没有效了
inflate方法root参数的作用
View的布局
<?xml version="1.0" encoding="utf-8"?>
其实 View 必须存在于一个父布局中,这样 layout_width 和 layout_height 才会有效,这也是为什么这两个属性叫作 layout_width 和 layout_height,而不是 width 和 height。只有 inflate(int resource, ViewGroup root, boolean attachToRoot) 的第二个参数不为空时,resource 的最外层布局参数才生效
- 当
View view= LayoutInflater.from(context).inflate(R.layout.recycler_item_layout,parent,false);
时: LinearLayout 的 layout_width 和 layout_height 都会失效 - 当
View view= LayoutInflater.from(context).inflate(R.layout.recycler_item_layout,parent,false);
时: LinearLayout 的宽高都有效
更多相关文章
- Android的振动服务,vibrator第二个参数的真正含义
- Android(安卓)API:自定义ViewGroup
- Android:布局实例之模仿微信Tab
- Android(安卓)OkHttp4 RequestBody.create()过时解决办法 kotlin
- Android(安卓)ViewFlipper实现多个布局手势切换的效果
- Android(安卓)ConstraintLayout 约束布局
- android 如何自定义通知栏图标(不使用自定义布局情况下)
- Android(安卓)约束布局ConstraintLayout解析
- Android(安卓)布局优化之include与merge,最后有ViewStub