LayoutInflater父级

LayoutInflater parent

当父级 null 膨胀时:

LayoutInflater I = getLayoutInflater();
        RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.Relative);
        View v = I.inflate(R.layout.text,null);

        relativeLayout.addView(v);

文本有参数android:layout_centerHorizontal="true" android:layout_centerVertical="true" 但是当将手册添加到 relativeLayout 时,params dosent 工作

但是当我使用这段代码时:

   LayoutInflater I = getLayoutInflater();
            RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.Relative);
            View v = I.inflate(R.layout.text,relativeLayout);

文本参数有效

text params work and hello word in center

为什么?

以 "android:layout_" 开头的参数用于描述视图相对于它的父视图的放置方式,当您使用 inflator 构建视图时您不会提供该视图。

这应该很明显,但只需使用您发布的第二种方法即可。

您是否注意到当您将 null 作为父级传递时收到此 lint 警告?

或者您是否注意到 xml 中的视图有一些属性以前缀 layout_ 开头,而其他则没有?

layout_开头的属性被View的父ViewGroups用来测量、布局和绘制view。因此,您应该始终传递父 ViewGroup 来扩充布局。

如果您将 null 作为父级传递,充气器将不知道您传递的布局的父级是什么。它可以是 FrameLayoutRelativeLayout 或其他布局。因此,如果您没有传递正确的父布局,layout_ 参数将被忽略。