我有一個自定義View
,我想指定在XML文件中的佈局,而不是通過代碼。無論如何對特定的View/ViewGroups使用XML佈局文件?
是否有我可以採取Android XML佈局文件,並用它來衝出我的自定義View
的內容?
我知道這可以通過setContentView
方法在Activity
中完成,但對Views
似乎沒有類似的方法。
我有一個自定義View
,我想指定在XML文件中的佈局,而不是通過代碼。無論如何對特定的View/ViewGroups使用XML佈局文件?
是否有我可以採取Android XML佈局文件,並用它來衝出我的自定義View
的內容?
我知道這可以通過setContentView
方法在Activity
中完成,但對Views
似乎沒有類似的方法。
下面是基本概述:在您的活動代碼中,使用findViewById
在活動的主視圖中獲取要在XML中定義的子視圖的容器。然後,使用mySubview = getLayoutInflater().inflate(R.layout.mysubview, mycontainerInRootView)
來構建新的包含視圖。最後,您可以使用返回的子視圖findViewById
將子視圖的控件掛接到主要活動中。
在一個自定義的View類中,您同樣需要獲得一個LayoutInflater實例爲您完成工作,但細節可能會略有不同。我會讓View的ViewGroup子類自定義啓動,然後在構造函數中使用LayoutInflater.from(ctx)來獲取inflater並從那裏開始。它看起來像mContents = LayoutInflater.from(ctx).inflate(R.layout.mycustomview, this)
。
我認爲這是[使用XML聲明自定義android UI元素]的副本(http://stackoverflow.com/questions/2695646/declaring-a-custom-android-ui-element-using-xml) – Casebash 2010-08-11 00:03:48