android - FragmentManager 移除
问题描述
我在片段交互方面遇到了一些问题..
我在一个特定的活动上添加了四个片段..
代码如下:
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
SecAct_Foto_Fragment foto_fragment = new SecAct_Foto_Fragment();
BUT_left_base_Fragment left_base_fragment = new BUT_left_base_Fragment();
BUT_mid_base_Fragment mid_base_fragment = new BUT_mid_base_Fragment();
BUT_right_base_Fragment right_base_fragment = new BUT_right_base_Fragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.container_second, foto_fragment)
.commit();
getSupportFragmentManager().beginTransaction()
.add(R.id.container_second, left_base_fragment)
.add(R.id.container_second, mid_base_fragment)
.add(R.id.container_second, right_base_fragment)
.addToBackStack(null)
.commit();
}
}
然后我想在一个片段中删除所有这些按钮单击,每个片段都有自己的退出转换。
问题是片段没有被删除..我一直在阅读片段BackStack上的一些东西,但这似乎与它无关..
我无法弄清楚为什么没有删除碎片?
public class BUT_right_base_Fragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.right_base_fragment, container, false);
Button button = (Button)rootView.findViewById(R.id.right_base_button);
final BUT_left_base_Fragment but_left_base_fragment = new BUT_left_base_Fragment();
final BUT_mid_base_Fragment but_mid_base_fragment = new BUT_mid_base_Fragment();
final BUT_left_FShape_Fragment but_left_fShape_fragment = new BUT_left_FShape_Fragment();
final BUT_mid_FShape_Fragment but_mid_fShape_fragment = new BUT_mid_FShape_Fragment();
final BUT_right_FShape_Fragment but_right_fShape_fragment = new BUT_right_FShape_Fragment();
//the remove transactions do not function
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.fade_in, R.anim.left_base_fshape)
.remove(but_left_base_fragment)
.setCustomAnimations(R.anim.fade_in, R.anim.mid_base_fshape)
.remove(but_mid_base_fragment)
.setCustomAnimations(R.anim.fade_in, R.anim.right_base_fshape)
.remove(but_right_base_fragment)
.addToBackStack(null)
.commit();
}
});
return rootView;
}
}
解决方案
推荐阅读
- django - Django中的芹菜异步不起作用
- javascript - 我可以设置 JavaScript 以立即开始轮询连接的游戏手柄吗?
- python - 如何在一堆字符串中找到一个特定的字符串?都在不同的细胞内
- google-cloud-platform - 谷歌云负载均衡器导致错误 502 - failed_to_pick_backend
- python - Django Rest Framework - 过滤嵌套关系的字段
- pyspark - 将 rest api get 方法响应保存为 json 文档
- regex - 带有 url 变量的 htacces 规则到外部 url
- java - 通过检查多个空值来排序
- flutter - MissingPluginException(在通道 plugins.flutter.io/google_sign_in 上找不到方法 init 的实现)
- powershell - 如何使用 PowerShell 从 INT 值 HHMMSS 转换为 TimeSpan