1

我在我的应用程序中使用片段。下面是我的应用程序的屏幕截图。活动启动时一切看起来都很好。但是,当我更改屏幕方向时,布局会在滚动时重叠。有什么想法有什么问题吗?

编辑(解决方案):
我发现出了什么问题。在方向更改时添加了一个新片段。我之前使用的是fragmentTransaction.add(...),我用replace方法替换了它。

4

1 回答 1

0

为了未来的游客的理解...

您很可能将片段添加到活动的 onCreate() 中。

当您的设备旋转时,您的活动将被销毁并重新创建,但它也会重新创建任何添加的片段。

考虑到这两点...

  1. onCreate 被调用,你添加一个片段到你的活动中。你有一个片段。
  2. 你旋转屏幕。
  3. 活动被销毁并重新创建。您的片段被销毁并重新创建。你还有一个片段。
  4. 您的活动调用 onCreate() 作为其重新创建的一部分,这会向您的活动添加一个片段。你现在有两个片段。

如果您的一个或两个片段具有透明背景,则两者可能会同时显示,就像这里的情况一样。

使用替换而不是添加(您已经完成),或者更好的是,如果savedInstanceState为空,则仅在 onCreate() 中添加片段。如果它为空,则意味着它是第一个 onCreate() 调用。

于 2018-06-18T20:42:37.700 回答