Iga*_*gal 19 android fragment android-fragments android-actionbar
我有一个带有3个标签的操作栏,每个标签打开一个片段.第三个选项卡"目录"有一个列表:

当我点击某个项目时,它会打开另一个片段,该片段不属于操作栏:
public void onClick(View v) {
switch (v.getId())
{
case R.id.category1:
Fragment cosmeticsFragment = new ActivityCosmetics();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(android.R.id.content, cosmeticsFragment);
transaction.addToBackStack(null);
transaction.setTransition(1);
transaction.commit();
break;
...
Run Code Online (Sandbox Code Playgroud)
这就是它之后的样子:

从这一点来说,如果我转到其他选项卡然后返回目录选项卡,我会看到之前的2个片段相互重叠:

我该如何防止它发生?
您可以通过按标签搜索片段来管理片段。将片段添加到 backstack 时添加 TAG 名称
transaction.addToBackStack("myCustomFragmentTag");
Run Code Online (Sandbox Code Playgroud)
如果您想销毁应用程序中任何位置的片段:
Fragment previousInstance = getFragmentManager().findFragmentByTag("myCustomFragmentTag");
if (previousInstance != null)
transaction.remove(previousInstance);
Run Code Online (Sandbox Code Playgroud)
您可以尝试覆盖某些行为,因此这行代码将破坏初始化的最后一个片段
getFragmentManager().popBackStack();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15378 次 |
| 最近记录: |