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