活动中的碎片奇怪的行为

原则上,软件应该是可预测的,但不是…

我创建了一个包含播放按钮的fragment (用于播放音频),因为我有许多活动需要播放一些音频,所以我们的活动只是通过XML导入片段,他们将音频文件放在一些预期的地方, fragment按需播放,或者当活动呈现给用户时自动播放。 到现在为止还挺好。

但令人惊奇的是,很长一段时间,我可以访问la Kotlin的fragment ,如果在活动XML中,片段有id→ fPlayer 。我可以在活动中做如fPlayer.tV1.text="whatever"

甚至在onStart事件fPlayer.play(bPlay) (从片段bPlay一个按钮),它工作了一段时间,直到我不得不求助于更经典的方法:

  val fragment = getFragmentManager().findFragmentById(R.id.fPlayer) if(fragment!=null) { val f2: PlayerFragment = fragment as PlayerFragment f2.tV1.text = "What ever" f2.play(bPlay) } 

问题是它怎么可能起作用?