我需要在按下按钮时删除QRCode扫描 View 这是我的代码:
public void back() {
if (binding.vpPager.getCurrentItem() == 1) {
binding.vpPager.setCurrentItem(0);
}
else
{
scanQRcodeFragment = new ScanQRcodeFragment();
scanQRcodeFragment.removeFragmentReader();
}
}
要使用的函数:
public class ScanQRcodeFragment extends Fragment implements BarcodeReaderFragment.BarcodeReaderListener{
public void removeFragmentReader() {
FragmentManager supportFragmentManager = getChildFragmentManager();
FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
Fragment fragmentById = supportFragmentManager.findFragmentById(R.id.container);
if (fragmentById != null) {
fragmentTransaction.remove(fragmentById);
}
fragmentTransaction.commitAllowingStateLoss();
}}
当我运行该应用程序时,它崩溃并收到此错误:
java.lang.IllegalStateException: Fragment has not been attached yet. at android.support.v4.app.Fragment.instantiateChildFragmentManager(Fragment.java:2383)
我发现很多问题都有同样的问题,但没有人解决我的问题。
我需要你的帮助。
最佳答案
您正在尝试使用尚未实例化的其他对象来删除该 fragment 。 scanQRcodeFragment = new ScanQRcodeFragment();
这里您正在实例化一个未添加的新对象,您需要添加的 fragment 的引用才能将其删除。
关于java.lang.IllegalStateException : Fragment has not been attached yet Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56835934/