2013-10-08 80 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)); 
相關問題