【发布时间】:2017-09-10 14:54:40
【问题描述】:
我有一个常见的 List Fragment,我将其用于扩充不同的列表。
我按照@DevrimTuncer 到this Question 提供的答案来实现它。
假设我有两个列表 Product 和 Sales 使用相同的列表片段进行膨胀。
如果我从导航抽屉中选择产品,则会加载一个新的列表片段,其中包含与 产品 相关的数据。
同样,如果我单击销售选项,则会创建一个与销售相关的新实例。
考虑以下场景,
如果我选择产品选项,然后选择销售选项,请分开 列表片段的实例已创建,当前,Sales 列表将可见。产品列表将在后台堆栈中。
此外,如果我选择产品选项,产品列表将为 从堆栈中弹出。但它包含与销售相关的数据 列表(不知何故列表片段中与 B 相关的参数 仍然存在)。
我对产品和销售列表片段使用唯一标签,同时膨胀片段。
下面是我用来给片段充气的方法。
private void openListFragment(Bundle arguments, String listName)
{
boolean fragmentPopped = mFragmentManager.popBackStackImmediate (listName, 0);
if(!fragmentPopped && mFragmentManager.findFragmentByTag(listName) == null)
{
mFragmentManager
.beginTransaction()
.replace(R.id.list_container, ListFragment.newInstance(arguments))
.addToBackStack(listName)
.commit();
}
}
listName 参数对于 A 和 B 是唯一的。
我有点坚持。
【问题讨论】:
标签: android android-fragments android-listfragment fragmentmanager