2013-10-08 44 views
1

我想要扩展视图创建自定义视图,并自动迫使一些布局参数,这种方式:如何知道哪种布局类型是视图?

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

我的问题是,我怎么可以设置LayoutParameters如果我不知道如果视图将在LinearLayout,RelativeLayout或其他地方设置? 如何检测哪种布局类型是视图?

回答

2

你在谈论的所有布局参数来自android.view.ViewGroup.LayoutParams这是通用于所有ViewGroup类(的LinearLayout,RelativeLayout的,等等)

所以,你不应该需要家长来区分视图类型;直接使用LayoutParams即可。

+0

哦谢谢你,所以我必须'导入android.view.ViewGroup.LayoutParams',一切都完成了!谢谢。 –

1

我刚刚发现了一个简单的解决方案。无论如何,只要可能有更简单更完整的方法来做同样的事情,问题仍然有效。

if (this.getParent() instanceof LinearLayout) 
     this.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); 
相关问题