如何在堆栈中存储片段?所以一旦加载了一个片段 X,从另一个片段 Y 移动到 X 不会"reload" X



如何在堆栈中存储片段?因此,一旦加载了一个片段 X,从另一个片段 Y 移动到 X 不会"重新加载"它,而是从某种保存状态获取片段......

尝试减少此处的 API 调用。因此,每当切换片段时,它不会通过调用 API 而是从先前保存的状态获取数据。 我可以在创建的活动上一次获取所有片段,但同样不想在开始时一次调用不同片段的所有 API。

此方法将使用 tag 将片段添加到 backstack 中,您只需要将片段对象传递给此。

每当您按下后退按钮时,都会在没有任何请求甚至调用 onCreate 方法的情况下加载反向堆栈中的上一个片段。

public void addFragment(Fragment fragment) {
String tag = fragment.getClass().getName() + "_" + getSupportFragmentManager().getBackStackEntryCount();
fragment.setPageId(pageId);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction().addToBackStack(tag);
transaction.add(R.id.frame_holder, fragment, tag);
transaction.commit();
}

请查看添加片段和替换片段。 概念。 它将解决您的查询。 参考链接 片段的 add(( 和 replace(( 方法之间的基本区别

相关内容

  • 没有找到相关文章