-
簡介
- 在Android開發過程中,很多地方都不可避免的使用到inflate方法,如在給
Fragment
進行CreateView(建立檢視)
時,我們通常是inflater.inflate(R.layout.xxx, container, false)
來呼叫inflate方法的,不難發現,inflate方法的作用是將一個 xml 佈局檔案變成一個 view 物件。
- 在Android開發過程中,很多地方都不可避免的使用到inflate方法,如在給
-
注意事項:
-
這玩意是用來將 xml 轉換為 view 的
-
這玩意不能直接new初始化,透過
Activity
和SystemService
獲取,你也可以自定義他的源方法 -
因為效能問題,他只能把寫在layout裡被預處理過的 xml 轉換為 view ,不能隨便找個 xml 檔案就讓他轉換
-
-
引數解析
-
inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)
方法有三個引數-
resource:檢視資源,由於檢視是R類內的layout管控,通常傳參形式為
R.layout.xx
,xx
代表檢視佈局的 **xml **檔案 -
root:容器,view和它的關係就是水與水容器的關係,顯而易見,它是管控檢視xml檔案內控制元件的
width、height
等等屬性的,如果為null
,那部分屬性就會失去效用,甚至直接導致編譯的程式崩潰,通常傳承形式為ViewGroup
型別的物件,例如在此方法呼叫之前定義一個變數ViewGroup viewGroup = findViewById(R.id.xx)
,xx
代表最高階別檢視的ID,後面進行傳參viewGroup
即可。也可以直接在getView無法獲取到檢視資源時(findViewById無法使用)過載onCreateView方法編輯它進行繫結檢視資源:@Override public View onCreateView(LayoutInflater inflater, ViewGroup container) { View view = inflater.inflate(R.layout.xx, container, false); myGetView(view); //繫結指定view return view; } public void myGetView(View view){ //在這裡進行view的功能操作 }
-
attachToRoot:布林值型別的引數,ture/false,代表是否需要一鍵addView。例如通常情況下想要看到自己佈局的檢視是需要addView進行新增檢視的:
public class MainActivity extends AppCompatActivity { @override protected void oncreate(Bundle savedInstancestate){ super.oncreate(savedInstanceState); setContentView(R.layout.activity_main); ViewGroup viewGroup = findViewById(R.id.viewgroup); View view = getLayoutInflater().inflate(R.layout.xx, viewGroup, false); viewGroup.AddView(view) } }
傳入true引數即可省略AddView步驟:
public class MainActivity extends AppCompatActivity { @override protected void oncreate(Bundle savedInstancestate){ super.oncreate(savedInstanceState); setContentView(R.layout.activity_main); ViewGroup viewGroup = findViewById(R.id.viewgroup); View view = getLayoutInflater().inflate(R.layout.xx, viewGroup, true); } }
-
-
Android開發 - inflate方法與建立檢視解析
相關文章
- Android開發 - 檢視佈局屬性解析Android
- Android之Inflate()方法用途Android
- mysql 建立索引的方法--建立檢視MySql索引
- 建立一個360°檢視(2):模式開發模式
- Android開發 - Creator 類從 Parcel 中建立新的物件解析Android物件
- MySQL 建立檢視MySql
- Android學習開發(問題解決)——android Unable to inflate view tag without class attributeAndroidView
- MySQL資料庫檢視:檢視定義、建立檢視、修改檢視MySql資料庫
- 關於開發檢視
- Android開發---在RecyclerView列表中新增自定義的列表頭部與尾部檢視AndroidView
- iOS開發-列表檢視的基本介紹與使用iOS
- Android高手進階教程(二十一)之---Android中建立與幾種解析xml的方法!AndroidXML
- oracle 建立物化檢視Oracle
- Oracle 物化檢視建立Oracle
- Android原始碼分析(LayoutInflater.from(this).inflate(resId,null);原始碼解析)Android原始碼Null
- Android開發 - Context解析AndroidContext
- Android開發 - BrowseFragment 類解析AndroidFragment
- oracle db link的檢視建立與刪除Oracle
- Android Native 開發之 NewString 與 NewStringUtf 解析Android
- Android開發筆記——點選檢視大圖過渡動畫與圖片縮放與移動Android筆記動畫
- 第63課、深入解析檢視與委託(上)
- day04-檢視和檢視解析器
- Android開發 - DialogFragment 類解析AndroidFragment
- mysql建立索引和檢視MySql索引
- 自定義例外 + 建立檢視
- 動態建立ImageView檢視View
- iOS開發系列--檢視切換iOS
- Spring 檢視和檢視解析器簡介Spring
- Android開發 - 掌握ConstraintLayout(十)按比例設定檢視大小AndroidAI
- EOS開發完全解析(三):EOS賬號建立
- 建議開發員少用帶錶連結的檢視(此檢視非物化檢視)
- 探索 Android TDD 開發方法Android
- 探索 Android BDD 開發方法Android
- Git檢視分支建立時間Git
- mysql檢視錶建立的索引MySql索引
- 使用sitemesh建立複合檢視
- ORACLE中的物化檢視建立Oracle
- 動態建立檢視指令碼指令碼