我知道 fragment 的 View 层次结构必须在 onCreateView 中膨胀,但是 onCreateView 中可以有哪些其他功能与应该等待 onActivityCreated 什么?我当前的实现对所有内容都使用单独的 Activity ,典型的 Activity 在其 onCreate 方法中完成大部分工作,包括膨胀 View 、设置内容 View 、使用数据初始化各种小部件、设置监听器等。
那么这是否可以全部移到 onCreateView 中,还是应该将某些函数放入 onActivityCreated 方法中?
最佳答案
如果您的 View 是静态的,则无需将任何代码移至 onActivityCreated 方法。但是,例如,当您从适配器中填充一些列表时,您应该在 onActivityCreated 方法中执行此操作,并在 setRetainInstance 曾经这样做时恢复 View 状态。
同样访问父Activity的 View 层次必须在onActivityCreated中完成,不能越早。
关于Android fragment onCreateView 与 onActivityCreated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8041206/
那么在fragment中启动View的最佳位置在哪里?我们知道我们应该只在onCreate()中扩充布局,而不是启动View,比如设置监听器。YoushouldinflateyourlayoutinonCreateViewbutshouldn'tinitializeotherviewsusingfindViewByIdinonCreateView.而且我们知道onViewCreated()在onCreateView()之后立即被调用,基本上View已膨胀,一切就绪。但问题是,每次您转到另一个页面并返回时,都会调用onViewCreated!因此,如果您在此处启动您的View,例如添加一
我在我的应用程序中使用导航选项卡。我有3个fragment,它们从Internet加载不同的数据。我想知道在onCreate、onCreateView或onActivityCreated中放置发出HTTP请求的代码的最佳位置?通常,我将所有代码(请求数据、填充适配器、展开View...)放在onCreateView中。我也在网上看到很多人这样做。但是这个指南https://github.com/thecodepath/android_guides/wiki/Creating-and-Using-Fragments做不同的事情。所以我想确定具体要做什么。 最佳
我正在处理fragment并将新fragment推送到后台堆栈,但是当我将设备旋转两次时,fragment的onCreateView、onActivityCreated等等在fragment生命周期中永远不会调用方法而留下空白屏幕。这仅在fragment已添加到后台堆栈或返回到后台堆栈中的第一个fragment时发生。这是我的Activity的fragment处理方法:@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//InjectionMormonCh
查看https://github.com/xxv/android-lifecycle的优秀图表它说onActivityCreated()不会在fragment重启时调用。我对此表示怀疑:这是真的吗?有人可以提供一些链接来做解释生命周期行为的文档吗?Fragmentrestart()到底是什么?Android能否决定删除不可见的fragment,但保留保存它们的Activity?注意1:我已经测试过,当由于Activity重新创建而添加fragment时以及在Activity完全启动并处于Activity状态后手动添加fragment时,都会调用onActivityCreated。注意2
Google建议我们在Fragment的onActivityCreated中调用getLoaderManager().initLoader(0,null,this);http://developer.android.com/reference/android/content/AsyncTaskLoader.html但是,这会产生以下问题:onLoadFinished将在配置更改(轮换)期间被调用两次我们可以模拟如下问题。代码packageorg.yccheok.gui;importandroid.content.Context;importandroid.os.Bundle;impor
Google建议我们在Fragment的onActivityCreated中调用getLoaderManager().initLoader(0,null,this);http://developer.android.com/reference/android/content/AsyncTaskLoader.html但是,这会产生以下问题:onLoadFinished将在配置更改(轮换)期间被调用两次我们可以模拟如下问题。代码packageorg.yccheok.gui;importandroid.content.Context;importandroid.os.Bundle;impor
我知道fragment的View层次结构必须在onCreateView中膨胀,但是onCreateView中可以有哪些其他功能与应该等待onActivityCreated什么?我当前的实现对所有内容都使用单独的Activity,典型的Activity在其onCreate方法中完成大部分工作,包括膨胀View、设置内容View、使用数据初始化各种小部件、设置监听器等。那么这是否可以全部移到onCreateView中,还是应该将某些函数放入onActivityCreated方法中? 最佳答案 如果您的View是静态的,则无需将任何代码移
我知道fragment的View层次结构必须在onCreateView中膨胀,但是onCreateView中可以有哪些其他功能与应该等待onActivityCreated什么?我当前的实现对所有内容都使用单独的Activity,典型的Activity在其onCreate方法中完成大部分工作,包括膨胀View、设置内容View、使用数据初始化各种小部件、设置监听器等。那么这是否可以全部移到onCreateView中,还是应该将某些函数放入onActivityCreated方法中? 最佳答案 如果您的View是静态的,则无需将任何代码移
我正在使用Android4.0ICS和Fragments开发应用程序。考虑这个来自ICS4.0.3(API级别15)API的演示示例应用程序的修改示例:publicclassFragmentTabsextendsActivity{privatestaticfinalStringTAG=FragmentTabs.class.getSimpleName();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);finalActionBarbar=getActio
我正在使用Android4.0ICS和Fragments开发应用程序。考虑这个来自ICS4.0.3(API级别15)API的演示示例应用程序的修改示例:publicclassFragmentTabsextendsActivity{privatestaticfinalStringTAG=FragmentTabs.class.getSimpleName();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);finalActionBarbar=getActio