1

我想扩展一个视图来创建一个自定义视图,并自动强制一些布局参数,这样:

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

我的问题是,如果我不知道视图是设置在 LinearLayout、RelativeLayout 还是其他地方,我该如何设置 LayoutParameters?如何检测视图所在的布局类型?

4

2 回答 2

2

您所说的布局参数都来自所有类(LinearLayout,RelativeLayout等)android.view.ViewGroup.LayoutParams通用的布局参数。ViewGroup

所以你不需要区分父视图类型;直接用就行了LayoutParams

于 2013-10-08T13:20:27.003 回答
1

我自己找到了一个简单的解决方案。无论如何,只要有一种更简单、更完整的方法来做同样的事情,这个问题就仍然有效。

    if (this.getParent() instanceof LinearLayout)
        this.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
于 2013-10-08T13:16:18.457 回答