我在屏幕上有应用标题片段和内容片段。当用户点击titles片段中的项目时,将创建相应片段并将其插入到帧中,并且所选标题将在titles片段中突出显示。
使用fragment.addToBackStack()
完成交易,因此当用户点击BACK
键时,前一个片段将被恢复并插入到框架中。
当事务管理器恢复片段时,恢复视图状态的最佳解决方案是什么?
问题是我应该在titles片段中突出显示以前的片段名称,我应该知道它是什么片段。我通过在我自己的堆栈中存储视图状态来解决它:创建片段并使用事务管理器侦听器在更改事务backstack时恢复。
但这似乎不是正确的解决方案。
答案 0 :(得分:1)
在回答之前,下次记得添加你的代码。机会是我的答案不会对你有所帮助,因为我真的不知道你的代码。
这已经过时了但无论如何,如果我正确地理解了您的问题(和应用程序架构),这听起来像是接口的情况。
示例:
将此接口添加为内容片段的成员:
public class ContentFragment extends Fragment{
public interface onFragmentTitleHighlighted{
public void highLightTitle(String title);
}
}
并让标题片段实现它。确保为内容片段配备标题fragmnet,并在内容片段的onCreateView(...)调用中添加对highLightTitle(String title);
的调用。这样,只要添加新的内容fragmnet,标题就会突出显示。