生命周期方法和其他方法在哪里获取它们的参数值?
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(...)
,但是同样,作为 arguments 传递给超级的值在哪里,即 参数我们local
版的onCreateView,来自?
重申一下,我的主要问题是调用 onCreateView 方法并传入参数的是什么?
我的第二个问题是,如果我要在同一个 activity onCreateView 中创建一个方法:
public void foo(LayoutInflater myInflater) // Or it takes in a Bundle, Viewgroup, etc.
我的 foo 方法是否也会获得与 onCreateView 方法相同的参数值?
最后,我的第三个问题与此类似。一个视图是 returned,但像以前一样,它看起来不像我们处理 return。那么,什么处理 return 值??
如果可能的话,我会谦虚地请求进一步阅读有关 Android 核心代码如何工作的信息,以便实现我自己的正确使用的方法
来自 Android 的参数以及如何将 return 值也正确地设置为 Android。
documentation for Fragment.onCreateView()
表示如下:
This will be called between onCreate(Bundle) and
onActivityCreated(Bundle).
Android 框架进行所有生命周期调用 itself.The Android 框架将在片段上调用 onCreate()
to initialize the fragment. At some later time, the Android framework will call
onCreateView()` 在片段上。传递了以下参数:
LayoutInflater
:LayoutInflater
对象可用于膨胀 Fragment
中的任何视图。该框架从 Activity
的 Context
.
中获取 LayoutInflater
ViewGroup
:如果非空,这是片段的 UI 应该附加到的父视图。该片段不应添加视图本身,但这可用于生成视图的 LayoutParams
。此参数是容器 View
,其中包含 Fragment
.
Bundle
:如果非空,则此片段正在根据此处给出的先前保存状态重建。在这种情况下,Bundle
包含 Fragment
最近保存的状态(即:最近调用 Fragment
s onSaveInstanceState()
方法的数据)。
关于您的其他问题:
如果你定义了一个方法foo()
,Android框架永远不会调用它。 Android 框架有一组特定的已定义方法,它会在特定时间调用某些组件(Activity, Service, BroadcastReceiver, Fragment
等)。
从onCreateView()
返回的View
将被Android框架使用。文档清楚地指出了返回的 View
对象是如何使用的:
If you return a View from here, you will later be called in
onDestroyView()
when the view is being released.
在下面的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(...)
,但是同样,作为 arguments 传递给超级的值在哪里,即 参数我们local
版的onCreateView,来自?
重申一下,我的主要问题是调用 onCreateView 方法并传入参数的是什么?
我的第二个问题是,如果我要在同一个 activity onCreateView 中创建一个方法:
public void foo(LayoutInflater myInflater) // Or it takes in a Bundle, Viewgroup, etc.
我的 foo 方法是否也会获得与 onCreateView 方法相同的参数值?
最后,我的第三个问题与此类似。一个视图是 returned,但像以前一样,它看起来不像我们处理 return。那么,什么处理 return 值??
如果可能的话,我会谦虚地请求进一步阅读有关 Android 核心代码如何工作的信息,以便实现我自己的正确使用的方法
来自 Android 的参数以及如何将 return 值也正确地设置为 Android。
documentation for Fragment.onCreateView()
表示如下:
This will be called between onCreate(Bundle) and onActivityCreated(Bundle).
Android 框架进行所有生命周期调用 itself.The Android 框架将在片段上调用 onCreate()
to initialize the fragment. At some later time, the Android framework will call
onCreateView()` 在片段上。传递了以下参数:
LayoutInflater
:LayoutInflater
对象可用于膨胀Fragment
中的任何视图。该框架从Activity
的Context
. 中获取 ViewGroup
:如果非空,这是片段的 UI 应该附加到的父视图。该片段不应添加视图本身,但这可用于生成视图的LayoutParams
。此参数是容器View
,其中包含Fragment
.
LayoutInflater
Bundle
:如果非空,则此片段正在根据此处给出的先前保存状态重建。在这种情况下,Bundle
包含 Fragment
最近保存的状态(即:最近调用 Fragment
s onSaveInstanceState()
方法的数据)。
关于您的其他问题:
如果你定义了一个方法
foo()
,Android框架永远不会调用它。 Android 框架有一组特定的已定义方法,它会在特定时间调用某些组件(Activity, Service, BroadcastReceiver, Fragment
等)。从
onCreateView()
返回的View
将被Android框架使用。文档清楚地指出了返回的View
对象是如何使用的:
If you return a View from here, you will later be called in
onDestroyView()
when the view is being released.