如果OnCreateView仅用于片段,那么Activity会是什么? 我试过OnCreate()而我无法让它工作
在第一个覆盖中我遇到了问题,在最后一个覆盖它也给了我一个OncreateView的错误。
我已经阅读了OnCreate()和OnCreateView(),但我找不到答案。
private VrPanoramaView panoWidgetView;
private ImageLoaderTask backgroundImageLoaderTask;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_pruebafoto, container,false);
panoWidgetView = v.findViewById(R.id.pano_view);
return v;
}
@Override
public void onPause() {
panoWidgetView.pauseRendering();
super.onPause();
}
@Override
public void onResume() {
panoWidgetView.resumeRendering();
super.onResume();
}
@Override
public void onDestroy() {
// Destroy the widget and free memory.
panoWidgetView.shutdown();
super.onDestroy();
}
private synchronized void loadPanoImage() {
ImageLoaderTask task = backgroundImageLoaderTask;
if (task != null && !task.isCancelled()) {
// Cancel any task from a previous loading.
task.cancel(true);
}
// pass in the name of the image to load from assets.
VrPanoramaView.Options viewOptions = new VrPanoramaView.Options();
viewOptions.inputType = VrPanoramaView.Options.TYPE_STEREO_OVER_UNDER;
// use the name of the image in the assets/ directory.
String panoImageName = "@drawable/iglesiavr.jpg";
// create the task passing the widget view and call execute to start.
task = new ImageLoaderTask(panoWidgetView, viewOptions, panoImageName);
task.execute(this.getAssets());
backgroundImageLoaderTask = task;
}
@Override
public void onCreateView(@Nullable Bundle savedInstanceState) {
super.onCreateView(savedInstanceState);
loadPanoImage();
}
答案 0 :(得分:0)
对于某项活动,我们有onCreate
您需要以下内容:
public class MainActivity extends Activity {
private VrPanoramaView panoWidgetView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pruebafoto);
Log.i("lifecycle","onCreate invoked");
panoWidgetView = (VrPanoramaView ) findViewById(R.id.pano_view);
loadPanoImage();
}
答案 1 :(得分:0)
活动仅使用onCreate
。碎片都有。
onCreate
使用setContentView
,而不是inflater,或super.onCreateView
此代码的错误是您定义了onCreateView
两次,第二个(位于底部),不会覆盖任何内容。它需要返回一个视图,但你有void
。您似乎尝试定义onCreate
,但将其保留为onCreateView
。
删除第二个,在返回之前将loadPanoImage()
移动到第一个。
答案 2 :(得分:0)
onCreateView()
仅在片段上调用,如果它是您可以使用onCreate()
方法的活动。有关详细信息,请参阅此生命周期流程图。
答案 3 :(得分:0)
<强>的onCreate():强>
您可以在片段中使用onCreate()
,在活动的onAttachFragment()
之后但在片段的onCreateView()
之前调用它。
在此方法中,您可以分配变量,获取Intent extras以及不涉及View层次结构的任何其他内容。但是,您无法在活动中使用onCreateView()
。
<强> onCreateView():强>
您可以指定View变量并执行任何图形初始化。您应该从此方法返回一个根视图,这是主视图,但如果您的Fragment不使用任何布局或图形,则可以返回null。