android - 试图从屏幕 Android 中删除一个 fragment

标签 android android-fragments onclicklistener

我在一个 Activity 中,我从那里启动一个 fragment ,它在屏幕上显示正常,但我想使用按钮然后删除相同的 fragment 。我看不出代码有什么问题,我知道它进入了应该删除它的代码,因为 toast 说“删除 fragment ”。有任何想法吗?谢谢

    public class ButtonClickHandler implements View.OnClickListener {
    public void onClick(View view) {

        if (showFrag == true){
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        MyFragment myFragment = new MyFragment();
        fragmentTransaction.add(R.id.myfragment, myFragment);
        fragmentTransaction.commit();
                showFrag = false;
        Toast.makeText(getBaseContext(), "Show Fragment", Toast.LENGTH_SHORT).show();
        }
        else if (showFrag == false){
            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            getSupportFragmentManager().popBackStack(); 
            fragmentTransaction.commit();
            Toast.makeText(getBaseContext(), "Remove Fragment", Toast.LENGTH_SHORT).show();
            showFrag = true;
        }
}


}

最佳答案

要弹出 backstack 的 fragment ,您需要先将其添加到 backstack 中。 您可以通过在调用 fragmentTransaction.add(R.id.myfragment, myFragment);

之后调用 fragmentTransaction.addToBackStack(null) 来实现

还包括@coelho 的评论 - 您不必启动 FragmentTransaction 来调用 popBackStack()。

关于android - 试图从屏幕 Android 中删除一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577899/

相关文章:

android - 在运行时为 Textview 更改字体

java - TextView 到字符串

java - 尝试使用 fragment 中的 Bundle 调用虚拟方法 java.util.ArrayList

android - FragmentTransaction 不显示替换的 fragment

java - 访问其他 fragment 数据

java - libGDX 中的 2D 水效果

android - 从以编程方式添加的按钮获取 OnClick()?

java - 创建一个实现 View.OnClickListener 的动态 onClick()

android - 在自定义 View 上实现 OnClickListener 方法

php - 我想通过 retrofit2 api 从 Mysql 数据库中获取数据