2010-07-26 158 views
1

我正在讀這本書'你好,Android'。在Sudoku示例中,它使用選項菜單。它需要一個MenuInflater,我們用它從XML讀取菜單定義並將其轉換爲真實視圖。 要使用按鈕,textview或許多其他視圖,我不需要誇大它們。我什麼時候需要充氣器?

我的問題是,在什麼情況下,我需要充氣器?爲什麼Android不像其他視圖那樣處理菜單?

回答

1

您需要在每個想要動態創建XML文件視圖的地方使用充氣器。當你調用setContentView()因爲他們總是需要

Activity佈局自動充氣。
但是當需要菜單—這是當用戶第一次按壓菜單按鈕—的XML定義的佈局需要手動充氣。同樣,如果你有一個ListView,你事先並不知道哪些行將存在,所以我們必須從列表中的每一行爲XML填充View,因爲它們是必需的。

+0

我是新來的Android,並試圖創建一個列表視圖,顯示簡單的文本列表。我創建了以下覆蓋適配器
public View getView(int position,View convertView,ViewGroup parent){ \t \t TextView tv = new TextView(context); \t \t tv.setText(searchEngines.get(position).Name); \t \t return tv; \t} 我沒有使用任何充氣器,但它的工作原理。當使用充氣器是絕對必要的時候,我很困惑 – helloworld 2012-08-07 11:51:20

1

充氣器主要用於將Xml佈局解析爲視圖對象。如上所述,在Xml中定義用於操作和開發開發人員的UI之間建立聯繫需要通貨膨脹。

每當需要UI更新用,我們需要通脹和UI更新用通過視圖對象和開發人員做可以動態創建視圖,並添加到現有的視圖。 因此,通脹有助於開發人員根據程序中的指定條件更改xml佈局中UI的行爲。 隨着通貨膨脹,我們可以在MVC中爲每個xml佈局定義控制器,其中xml是查看。 菜單也已到充氣在某些碼,例如的setContentView的圖(specifiedLayout)包括通貨膨脹 但在早期版本它不是這樣它像setContextView(getInflater()。膨脹(specifiedLayout))

爲了便於編程,android開發人員已經在setContentview()中引入了通貨膨脹,並且有很多場景,比如將視圖添加到佈局addView()等等。在大多數情況下,通貨膨脹已經包含在代碼中,爲什麼大多數初學者都知道通脹概念並且很難理解android中的通貨膨脹。

相關問題