2012-01-02 71 views
7

我有应用程序标题片段和内容片段在屏幕上。当用户点击标题片段中的项目时,将创建相应片段并将其插入到框架中,并且所选标题在标题片段中突出显示。如何恢复Android片段查看状态

交易使用fragment.addToBackStack()完成,所以当用户点击BACK密钥时,先前的片段被恢复并插入到帧中。

当事务管理器恢复碎片时恢复视图状态的最佳解决方案是什么?

问题是我应该突出显示片段名称在标题片段中,我应该知道它是什么片段。我通过将视图状态存储在自己的堆栈中解决了这个问题:使用事务管理器侦听器创建碎片并恢复在更改事务backstack时。

但这似乎不是正确的解决方案。

回答

1

在答案之前,下次记得添加你的代码。机会是我的答案不会尽你所能帮助你,因为我不知道你的代码。

这是旧的,但无论如何,如果我正确理解你的问题(和应用程序体系结构),这听起来像是一个接口的情况。

实施例:

添加此界面作为成员的内容片段:

public class ContentFragment extends Fragment{ 

    public interface onFragmentTitleHighlighted{ 
     public void highLightTitle(String title); 
    } 
} 

和具有标题片段实现它。确保为内容片段装备标题fragmnet,并在内容片段的onCreateView(...)调用中添加对highLightTitle(String title);的调用。通过这种方式,每当添加新的内容碎片时,标题将被突出显示。