android - 如何恢复 Android fragment View 状态

标签 android android-fragments fragment

我在屏幕上有应用程序 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/

相关文章:

java - 如何使用Java洗牌(尝试使用hashmap,不起作用)?

android - 使用接口(interface)和方法 onAttach(Fragments)

android - fragment 是否意味着我应该编写单 Activity 应用程序?

java - 从 JSONArray 获取无名 JSON 中的特定项目

android - 如何在android系统状态栏中显示文字

android - 如何在camera2,android中手动控制iso

android - 为 fragment 再次创建 ViewModel

android - 如何在两个不同的 fragment 中使用相同的数据

java - 如何将 AppCompatActivity 更改为 Fragment

java - 在 viewPager 中的 2 个 fragment 之间共享 listView