LayoutInflater

作用: 
1、對於一個沒有被載入或者想要動態載入的界面, 都需要使用inflate來載入. 

2、對於一個已經載入的Activity, 就可以使用實現了這個Activiyt的的findViewById方法來獲得其中的界面元素. 


Android裏面想要創建一個畫面的時候, 初學一般都是新建一個類, 繼承Activity基類, 然後在onCreate裏面使用setContentView方法來載入一個在xml裏定義好的界面. 

   其實在Activity裏面就使用了LayoutInflater來載入界面, 通過getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以獲得一個 LayoutInflater, 也可以通過LayoutInflater inflater = getLayoutInflater();來獲得.然後使用inflate方法來載入layout的xml, 


下面是一個簡單的例子:

首先我們要知道,什麼是已經被載入的layout,什麼是還沒有載入的.我們啓動一個應用,與入口Activity相關的layout{常見的是main.xml}就是被載入的,即在Oncreate()中的.而其他的layout是沒有被載入的.就要動態載入了或通過另一個activity.

在實際開發種LayoutInflater這個類還是非常有用的,它的作用類似於 findViewById(),
不同點是LayoutInflater是用來找layout下xml佈局文件,並且實例化!而findViewById()是找具體xml下的具體 widget控件.
 
LayoutInflater在Android中是“擴展”的意思,作用類似於findViewById(),不同的是LayoutInflater是用來獲得佈局文件對象的,而

findViewById()是用來獲得具體控件的。LayoutInflater經常在BaseAdapter的getView方法中用到,用來獲取整個View並返回。
LayoutInflater的用法有三種:

第一種方法:

第二種方法:

第三種方法:

 

下面是簡單的使用示例:

另外補充下,getSystemService是Activity中的方法,根據傳入的name來取得對應的服務對象,這些服務名稱參數都是Context類中的常量:

傳入的Name                              返回的對象                          說明
WINDOW_SERVICE               WindowManager           管理打開的窗口程序
LAYOUT_INFLATER_SERVICE LayoutInflater               取得xml裏定義的view
ACTIVITY_SERVICE               ActivityManager            管理應用程序的系統狀態
POWER_SERVICE                  PowerManger                電源的服務
ALARM_SERVICE                   AlarmManager              鬧鐘的服務
NOTIFICATION_SERVICE       NotificationManager      狀態欄的服務
KEYGUARD_SERVICE             KeyguardManager         鍵盤鎖的服務
LOCATION_SERVICE              LocationManager          位置的服務,如GPS
SEARCH_SERVICE                 SearchManager             搜索的服務
VEBRATOR_SERVICE             Vebrator                       手機震動的服務
CONNECTIVITY_SERVICE      Connectivity                  網絡連接的服務
WIFI_SERVICE                      WifiManager                  Wi-Fi服務
TELEPHONY_SERVICE            TeleponyManager         電話服務

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章