我在屏幕上有应用程序 titles fragment 和 contents fragment 。当用户单击标题 fragment 中的项目时,将创建相应的 fragment 并将其插入到框架中,并且所选标题会在标题 fragment 中突出显示。
事务是通过 fragment.addToBackStack()
完成的,因此当用户单击 BACK
键时,先前的 fragment 将恢复并插入到框架中。
当事务管理器恢复 fragment 时恢复 View 状态的最佳解决方案是什么?
问题是我应该突出显示标题 fragment 中的前一个 fragment 名称,我应该知道它是什么 fragment 。我通过将 View 状态存储在我自己的堆栈中来解决它:创建 fragment 并使用事务管理器监听器在更改事务堆栈时恢复。
但这似乎不是正确的解决方案。
最佳答案
在回答之前,下次记得添加您的代码。很可能我的回答不会尽可能地帮助您,因为我并不真正了解您的代码。
这是旧的,但无论如何,如果我正确理解你的问题(和应用程序架构),这听起来像是一个接口(interface)案例。
例子:
将此接口(interface)作为成员添加到内容 fragment 中:
public class ContentFragment extends Fragment{
public interface onFragmentTitleHighlighted{
public void highLightTitle(String title);
}
}
并让标题 fragment 实现它。确保为您的内容 fragment 配备标题 fragmnet,并在内容 fragment 的 onCreateView(...) 调用中添加对 highLightTitle(String title);
的调用。这样,无论何时添加新的内容 fragmnet,标题都会突出显示。
关于android - 如何恢复 Android fragment View 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701294/