美文网首页
Android之LayoutInflater了解(2019010

Android之LayoutInflater了解(2019010

作者: watayouxiang | 来源:发表于2019-01-09 15:44 被阅读3次

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"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="100dp">

    <TextView
        android:id="@+id/textView"
        android:textSize="30sp"
        android:gravity="center"
        android:background="#ffcccc"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

其实 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之LayoutInflater了解(2019010

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