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);
但是当我使用这段代码时:
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 作为父级传递,充气器将不知道您传递的布局的父级是什么。它可以是 FrameLayout
或 RelativeLayout
或其他布局。因此,如果您没有传递正确的父布局,layout_
参数将被忽略。
当父级 null 膨胀时:
LayoutInflater I = getLayoutInflater();
RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.Relative);
View v = I.inflate(R.layout.text,null);
relativeLayout.addView(v);
但是当我使用这段代码时:
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 作为父级传递,充气器将不知道您传递的布局的父级是什么。它可以是 FrameLayout
或 RelativeLayout
或其他布局。因此,如果您没有传递正确的父布局,layout_
参数将被忽略。