【发布时间】:2019-06-17 10:30:27
【问题描述】:
我在主页布局中有 4 个片段。当用户按下相应的按钮时,我想删除特定的片段。当我使用popBackStack() 执行此操作时,它会删除用户最近添加的片段。那么如何从屏幕上删除特定片段。
我在按钮单击时添加片段,我还有 3 个相同的添加按钮。
addFragment_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction()
.add(R.id.Fragment_container_1, new Fragment_1(), "Frag 1")
.addToBackStack("Frag 1")
.commit();
}
});
然后我想通过单击其他按钮来删除此片段。还添加了 3 个删除按钮。
removeFragment_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getSupportFragmentManager().popBackStack();
}
});
我有 4 个添加按钮和 4 个删除按钮。当我在屏幕上添加所有 4 个片段然后按下第一个删除按钮时,它会删除第 4 个片段,然后 3 > 2>1 并且所有 4 个删除按钮都这样做。我想要 1 个删除按钮只删除一个相应的片段。
我也尝试popBackStack ("Frag 1", 0) 它删除除片段 1 之外的所有 3 个片段,当我尝试 popBackStack("Frag 1", FragmentManager.POP_BACK_STACK_INCLUSIVE) 它删除所有 4 个片段。
我的英语不太好,我想要一些详细的答案。谢谢
【问题讨论】:
-
分享您如何执行片段删除的代码。这将有助于回答您在代码中遇到的问题
标签: android android-layout android-fragments fragment-backstack