根据此处的 Google 示例,我开发了一个基于片段的应用程序。
我的主要活动包含一个标题列表片段,如果它是在横向模式下创建的,则包含一个详细信息片段。如果应用程序以纵向模式启动,则主活动仅包含列表片段,如果单击列表项,则启动一个显示详细信息片段的新活动。
如果我保持纵向或横向模式,一切正常。但是一旦我改变方向,就会出现多个问题。
第一个问题:从纵向模式开始,然后切换到横向模式,活动被两次添加到活动堆栈中,我必须按两次后退按钮才能关闭我的应用程序。我无法想象这是谷歌希望它工作的方式,那么我该如何避免这种情况呢?
第二个问题:从横向模式更改为纵向模式时,会显示列表,而不是当前所选项目的详细信息片段。因此,我的 detailsfragment 中的所有用户输入都丢失了。这很烦人,我不知道如何处理。我是否必须在每项活动中以编程方式关注方向变化?
第三个问题:当我在横向模式下切换n 个细节时,一旦我切换到纵向模式,我必须按n次后退按钮来关闭我的添加,因为片段在后堆栈中(尽管它们不可见更多)。在方向改变时我必须自己清理后堆吗?