如何知道哪个布局类型是View?

时间:2013-10-08 13:13:39

标签: android

我想扩展一个View以创建一个自定义View,并以这种方式自动强制一些布局参数:

public class myView extends View {
    public myView(Context context) {
       this.setLayoutParameters(LayoutParameters(LayoutParameters.MATCH_PARENT, LayoutParameters.MATCH_PARENT));
    }
}

我的问题是,如果我不知道视图是否会在LinearLayout,RelativeLayout或其他地方设置,我该如何设置LayoutParameters? 如何检测视图中的哪种布局类型?

2 个答案:

答案 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));