我想扩展一个View以创建一个自定义View,并以这种方式自动强制一些布局参数:
public class myView extends View {
public myView(Context context) {
this.setLayoutParameters(LayoutParameters(LayoutParameters.MATCH_PARENT, LayoutParameters.MATCH_PARENT));
}
}
我的问题是,如果我不知道视图是否会在LinearLayout,RelativeLayout或其他地方设置,我该如何设置LayoutParameters? 如何检测视图中的哪种布局类型?
答案 0 :(得分:2)
您所讨论的布局参数均来自android.view.ViewGroup.LayoutParams
,这对所有ViewGroup
类(LinearLayout,RelativeLayout等)都是通用的
所以你不需要区分父视图类型;只需直接使用LayoutParams
。
答案 1 :(得分:1)
我自己找到了一个简单的解决方案。无论如何,只要有更简单,更完整的方法来做同样的事情,问题仍然有效。
if (this.getParent() instanceof LinearLayout)
this.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));