android - 同一个Activity中的Fragment切换重启同一个Fragment

标签 android android-fragments

我正在处理一个应用程序。
我想在 Activity 中的某处加载 Fragment,当在 FirstFragment 上单击 Gridview/Listview 项目时,我加载 SecondFragment

我已经按照下面的方式添加了 fragment :

主 Activity .java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.form_creation_view);

    Fragment fragment = new FirstFragment();
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.form_view, fragment).commit();

}

第二个 fragment :

Fragment fragment = new SecondFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.form_view, fragment).commit();

MainActivity.java 的 OnBackPress :

@Override
public void onBackPressed() {
    if(getFragmentManager().getBackStackEntryCount() == 0) {
        super.onBackPressed();
    } else {
        getFragmentManager().popBackStack();
    }
}

因此,当我在加载 SecondFragment 时按下 Mainactivity 上的 BackButton 时,它会切换到 FirstFragment,但它会再次调用 FirstFragment 的 onCreateView() 方法。

FirstFragment 内部有一个 Recyclerview,我在 OnCreateView() 方法中向服务器发送一个 API 请求,以便将数据加载到这个 Recyclerview 中。

现在,当我从 SecondFragment 再次回到这个 Fragment 时,我想要它,这样请求就不会被执行,数据应该被填充到 RecyclerView 中。

我怎样才能做到这一点?
有人可以帮我吗?

最佳答案

在你的 onCreateView 中,你应该做这样的检查:

    if(mList.size() == 0){
        //make api call
    }else{
        //set recyclerView adapter
    }

这样,当您从 SecondFragment 返回时,您可以重新填充 RecyclerView。

你还应该考虑在 onSaveInstanceState 上保存这个列表

关于android - 同一个Activity中的Fragment切换重启同一个Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286617/

相关文章:

android - 未从 firebase 填充的 fragment 内的 ListView ,但我可以将数据保存到可能的 firebase DB

Android - ProgressBar setVisibility to GONE 不工作

android - 使用 Espresso 测试 Google Android Places 自动完成功能

Android fragment 在父 onPause 和 onResume 之后不可见

android - RecyclerView 未显示在布局中

android - 为 android/ios 构建同步服务?

java - 在Android中,直到startactivity Intent 完成后, fragment 加载动画才会开始

android - 如何使用抽屉导航根据 fragment 更改菜单

android - 获取图像的元数据 - Android

java - 使用 JSON 和 PHP 从 SQL 数据库(无 MYSQL DB)(在 android 中)获取数据