问题标签 [fragment-lifecycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在旋转和返回时恢复 MapView 的状态
背景
我有一个更大的应用程序,其中我遇到/遇到了新的 Google Maps API 的几个问题。我试图用另一个问题来描述它,但由于它看起来太复杂了,我决定开始一个新项目,尽可能简单并尝试重现问题。所以就在这里。
情况
我正在使用Fragments
并想放在MapView
里面。我不想使用MapFragment
. 我准备的示例项目可能不是很漂亮,但我试图使其尽可能简单,并且它必须包含原始应用程序中的一些元素(再次简化)。我有一个Activity
和我的自定义Fragment
,MapView
以编程方式添加。Map
包含一些点Markers
/ 。单击显示并单击它后,会在内容中显示下一个Marker
(带有功能)。InfoWindow
Fragment
replace()
问题
我有两个问题:
当显示
Map
with时,Markers
屏幕旋转会导致Class not found when unmarshalling
我的自定义类出错MyMapPoint
- 我不知道为什么以及这意味着什么。我单击
Marker
然后InfoWindow
。在此之后,我按下硬件后退按钮。现在我可以看到Map
但没有Markers
和居中的0,0
点。
编码
主要活动
activity_main.xml
map_fragment.xml
我的地图片段
如果您需要查看任何其他文件 - 请告诉我。在这里您可以找到一个完整的项目,您只需将自己的 Maps API KEY 放入AndroidManifest.xml
文件中。
编辑
我设法使示例更加简单,并更新了上面的代码。
android - 用户“退出”时的片段生命周期
我有一个主要活动是显示/隐藏一堆片段。在用户登录的一开始就有一个登录活动。当用户按下主页或多任务按钮时,应用程序应该启动一个计时器,该计时器(在计时器用完后)自动将用户注销。这可能是当用户返回应用程序时(并且计时器已用完 -> 注销)或在应用程序中并且什么也没做。
就片段的生活方式而言,当用户按下主页/多任务按钮时,究竟会调用什么?在我的快速测试中,似乎每次都调用片段管理器的 onPause 中的第一个片段,无论用户退出时屏幕上的片段如何。
我该怎么办?
android - 使用 FragmentPagerAdapter 延迟调用 Android Fragment onPause 事件
我在管理 4 个片段的活动中有一个 FragmentPagerAdapter,一切正常,但是在加载新片段后,不会立即调用每个片段的 onPause 和 onDestroyView 事件,即:
片段A --> 片段B --> 片段C --> 片段D
当我传递给 FragmentC 时,FragmentA 的 onPause/onDestroyView 事件被调用,全局这些事件在 2 个步骤后被调用。
我错过了什么吗?
谢谢。
android - 片段实例中带有 Otto 事件总线的 IllegalArgumentException
我正在使用 Otto 事件总线订阅 ListFragment 中的某些事件。总线实例存储和创建在 Application 的子类中,换句话说,它总线应该作为单例工作。好像不是这样的……
该片段在 中注册到总线onActivityCreated(Bundle)
并在中取消注册onDestroy()
。这不能正常工作。我从应用程序在调用时崩溃的设备收到了几份崩溃报告unregister()
(java.lang.IllegalArgumentException:缺少带注释的方法的事件处理程序......)。unregister()
仅当在任何 register() 调用之前被调用或被unregister()
调用两次时才会抛出此异常。这可能只发生在...
onActivityCreated(Bundle)
之前没有调用onDestroy()
。onDestroy()
被调用两次。- 在调用和
Application
之间重新创建实例。onActivityCreated(Bundle)
onDestroy()
我的应用程序类:
片段类:
更新:
我遗漏了一个重要的细节;片段用于 a ViewPager
。当用户在ViewPager
. 这个小细节似乎改变了某些设备上的片段生命周期:在创建 onActivityCreated()
之后启动的片段永远不会被调用。ViewPager
android - add() & replace() 与 Fragment 生命周期的区别
我的程序有 6 个片段:Fragment1、Fragment2、....->Fragment6。
我使用 add() 和 replace() 语句在片段之间切换并跟踪它们的生命周期。
Fragment1添加Fragment2添加Fragment3添加Fragment4添加Fragment5替换Fragment6
显示它们的生命周期的日志猫(我在 onCreate、onCreateView、onDestroyView、onDestroy 中有一些 printf 点用于跟踪)
标签 __ _ __ _ __ _ __ _ __ 文字
片段1_ _ __ _ ___ _onCreate
片段1_ _ __ _ ___ _onCreateView
片段1_ _ __ _ ___ _添加片段2
片段2_ _ __ _ ___ _onCreate
片段2_ _ __ _ ___ _onCreateView
片段2_ _ __ _ ___ _添加片段3
片段3_ _ __ _ ___ _onCreate
片段3_ _ __ _ ___ _onCreateView
片段3_ _ __ _ ___ _添加片段4
片段4_ _ __ _ ___ _onCreate
片段4_ _ __ _ ___ _onCreateView
片段4_ _ __ _ ___ _添加片段5
片段5_ _ __ _ ___ _onCreate
片段5_ _ __ _ ___ _onCreateView
片段5 __ _ __ _ _ 替换 Fragment6
片段1 __ _ __ _ _ onDestroyView
片段3 __ _ __ _ _ onDestroyView
片段5 __ _ __ _ _ onDestroyView
片段6_ _ __ _ ___ _onCreate
片段6_ _ __ _ ___ _onCreateView
我的问题:
为什么Fragment5 被 Fragment6替换后, Fragment1 & 3 &5 被破坏了他们的视图?
Fragment2 & 4 发生了什么?
为什么Fragment2 & 4 没有破坏他们作为 Fragment1 & 3 &5 的观点?
请帮助我在调用 add() 和 replace() 方法时充分了解片段的生命周期。
更新我的 addFragment 和 replaceFragment 方法:
android - 嵌套片段生命周期
我有4个片段。hide
我通过使用/show
事务在它们之间切换。其中之一可能具有由replace
事务添加的嵌套片段。问题是,如果我添加一个嵌套片段隐藏主片段并再次显示它,onHiddenChanged
则不会调用我的嵌套片段的方法。为什么这样?如何确定我的嵌套片段何时可见?
android - android片段isRemoved方法
android中有一个isRemoving
片段的方法。根据文档,它只告诉片段何时正在被删除。但我需要知道一个片段是否已经被删除。有没有办法找到这个?我正在使用 api 级别 11。
android - onSaveInstanceState 中的保存接口(Listener)
保存实例状态
对于 Integer、Long、String 等数据都可以,我只需将其放入包中,并在再次调用 onCreateView 时将其取回。但我的片段也有如下听众,
我怎样才能让听众捆绑,以便我以后可以取回它?
android - ViewPager 中的片段——点击当前片段中的按钮会影响片段之后的片段,而不是当前/可见片段
问题:在单击fragment
内部的按钮时ViewPager
,单击会掉到fragment
它后面的那个,并onClickListener()
在后面fragment
而不是当前片段的onClickListener()
.
情况:我有一个ViewPager
4 fragments
。每个都fragment
包含几行定制的按钮。每个fragment
都有自己的独特之处view/layout
,但它们的设计都相似。
设置:我正在使用FragmentPagerAdapter
,因为我有一个非常静态的简短列表,fragments
并且因为我需要fragment
使用来交流和更新每个interface
,就像开发人员文档建议的那样。
我的想法:我应该切换到FragmentStatePagerAdapter
吗?那么当它们不可见时adapter
会破坏吗?fragments
但是在这样做时,我将无法与他们沟通并相应地fragments
更新他们吗?
我不知道如何解决这个问题,它一直让我发疯!任何帮助表示赞赏。
问我是否需要澄清任何事情。
nullpointerexception - 在 ListFragment 内的适配器上调用 notifyDataSetChanged() 会导致 NullPointerException?
介绍:
我有以下设置:
一个
MainActivity
with 方法onNewIntent
andprocessNewIntent
, theMainActivity
also implementsFragmentActivity
; 并有一个选项卡式片段,它实现FragmentList
listaddactivity
创造新事物的活动Parcelable
listControlObject
该
listaddactivity
活动发送一个带有包裹的意图,然后在MainActivity
'sonNewIntent
和processNewIntent
类中重建 listControlObject。然而; 我可以接受
intent
我的onNewIntent
方法,它会构建新的listControlObject
罚款;但是当我在课堂上调用该adapter.notifyDataSetChanged
方法时。FragmentList
日志错误:
onNewIntent
方法:
processNewIntent
方法:
引发 nullpointerexception 的特定行:
ListFragment
班级: