如果OnCreateView仅用于片段,那么Activity将是什么?
我尝试了OnCreate(),但无法正常工作
在第一个Override中,我遇到了问题;在上一个Overide中,它也给我一个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();
}
最佳答案
onCreate():
您可以在片段内使用onCreate()
,它在活动的onAttachFragment()
之后但在该片段的onCreateView()
之前调用。
在这种方法中,您可以分配变量,获取Intent Extras,以及不涉及View层次结构的任何其他内容。但是,您不能在Activity中使用onCreateView()
。
onCreateView():
您可以分配View变量并进行任何图形初始化。您应该从此方法返回一个根视图,这是主视图,但是如果您的Fragment不使用任何布局或图形,则可以返回null。