java - 如何从 fragment 本身中删除 fragment

标签 java android

我有一个Activity,它可以打开一个画廊,为了显示它,我创建了一个Fragment子类,在其中进行所有自定义.

我面临的问题是我无法删除Fragment以关闭图库。我尝试过以下方法:

closeGallery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getActivity().getFragmentManager().popBackStack();
            }
        });

但它不会从 Activity 中删除 Fragment。代码有什么问题吗?为了能够删除 Fragment,我是否遗漏了某些内容?

如果它可以帮助的话,这是我将 Fragment 添加到 Activity 的方法:

frame = new FrameLayout(NewsDetailsActivity.this);
frame.setId(R.id.galleryFragment);
setContentView(frame, new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
Bundle bundle = new Bundle();
bundle.putString("gallery", newsDetails.gallery.toString());
Fragment newFragment = new GalleryFragment();
newFragment.setArguments(bundle);
FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.add(frame.getId(), newFragment).commit();

最佳答案

您错过了添加到后堆栈。

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(frame.getId(), newFragment).addToBackStack(null).commit();

关于java - 如何从 fragment 本身中删除 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548281/

相关文章:

java - audioRecord 如何以指定的采样率检索数据

java - 如何在 Keycloak (3.4.3) 的自定义 spnego Authenticator 中将自定义错误消息返回到前端?

java - 如何在Java中使用Gradle使用Google Cloud API

android - 如果已在 RadioGroup 中选中,如何取消选中 RadioButton

android - 使用回调接口(interface)实现 AsyncTask - 在单个回调接口(interface)中处理多个调用响应

java - 混合 HTML 和 STRUTS2 标签

Java JFrame 表单

java - 如何知道从数组中选择了哪个字符串?

android - Appium,网络驱动程序

android - 在 Android 的单独线程中访问数据库