我在一个 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/