[英]Where do lifecycle methods, and other methods, get their parameter values?
在以下 Android 生命周期方法中:
@Override
public View onCreateView(
LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
...
return view;
}
onCreateView發生在一個LayoutInflater
, @Nullable Viewgroup
,和@Nullable Bundle
。
我的問題是在我所指的示例程序中: sceneform-android-sdk
似乎沒有一個實例,我們調用方法onCreateView
並傳入 LayoutInflatter、Viewgroup 和 Bundle。 然而,我們可以使用傳入的參數。
是的,我們調用了super.onCreateView(...)
,但是同樣,作為參數傳遞給 super 的值是從哪里來的,也就是我們local
版本的 onCreateView 的參數?
重申一下,我的主要問題是調用 onCreateView 方法並傳入參數的是什么?
我的第二個問題是,如果我要在 onCreateView 的同一活動中創建一個方法:
public void foo(LayoutInflater myInflater) // Or it takes in a Bundle, Viewgroup, etc.
我的 foo 方法也會獲得與 onCreateView 方法相同的參數值嗎?
最后,我的第三個問題也是類似的。 返回了一個視圖,但和以前一樣,看起來我們沒有處理返回。 那么,什么處理返回值?
如果可能,我會謙虛地請求進一步閱讀有關 Android 核心代碼如何工作的內容,以便實現我自己的方法來正確使用 Android 的參數以及如何正確地將值返回給 Android。
Fragment.onCreateView()
的文檔說明如下:
這將在 onCreate(Bundle) 和 onActivityCreated(Bundle) 之間調用。
Android 框架自己進行所有生命周期調用。Android 框架將在片段上調用onCreate()
to initialize the fragment. At some later time, the Android framework will call
to initialize the fragment. At some later time, the Android framework will call
在片段上to initialize the fragment. At some later time, the Android framework will call
onCreateView()`。 傳遞以下參數:
LayoutInflater
: LayoutInflater
對象,可用於膨脹Fragment
任何視圖。 框架從Activity
的Context
獲取LayoutInflater
。
ViewGroup
:如果非空,這是片段的 UI 應該附加到的父視圖。 該片段不應添加視圖本身,但這可用於生成視圖的LayoutParams
。 此參數是保存Fragment
的容器View
。
Bundle
:如果非空,則此片段是根據此處給出的先前保存的狀態重新構造的。 在這種情況下, Bundle
包含Fragment
最近保存的狀態(即:最近調用Fragment
的onSaveInstanceState()
方法的數據)。
關於您的其他問題:
如果您定義了一個方法foo()
,Android 框架將永遠不會調用它。 Android 框架有一組特定的已定義方法,它在特定時間調用特定組件( Activity, Service, BroadcastReceiver, Fragment
等)。
從onCreateView()
返回的View
將被 Android 框架使用。 文檔清楚地說明了如何使用返回的View
對象:
如果您從這里返回一個視圖,稍后將在釋放視圖時在
onDestroyView()
調用您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.