2013-08-02 69 views
0

我想從代碼中自定義我的佈局定義(在my_layout.xml文件中聲明)。在調用setContentView(View)函數之前,如何從代碼自定義我的layout.xml?

不幸的是,我可以使用findViewById()功能查找特定的觀點(在my_layout.xml文件中定義)和代碼定製他們打了個setContentView(R.layout.my_layout)之後。

但是如果我想要在調用setContentView()之前先定製我的佈局呢?在致電setContentView()之前,我如何訪問特定視圖?

+1

你是什麼意思定製?在調用setContentView之前,您也無法訪問特定視圖 –

+1

要更具體地說明您要自定義的內容。在調用setContentView之後,您可能不得不求助於程序化操作。 – Karakuri

回答

0
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
RelativeLayout myLayout = (RelativeLayout)inflater.inflate(R.layout.my_layout, null); 

現在您可以使用R.layout.my_layout中定義的視圖/資源並添加到您的自定義佈局中。

0

使用LayoutInflater是解決方案:

LayoutInflater li=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    LinearLayout v= (LinearLayout)li.inflate(R.layout.activity_main, null); 
    Button b=v.findViewById(R.id.button); 
    setContentView(v); 
+0

謝謝,它完美的作品! –

0
LayoutInflater myInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
RelativeLayout layout = (RelativeLayout)myInflater.inflate(R.layout.first_layout, null); 
setContentView(layout); 
0

onCreateView是有隻是這個目的。只需在您的活動或片段中覆蓋它,然後在那裏您可以自定義您的視圖。

相關問題