java.lang.IllegalStateException : Fragment has not been attached yet Android Studio

标签 java android fragment

我需要在按下按钮时删除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/

相关文章:

javascript - 更改页面中的 Phonegap 页面闪烁

android - onBackPress 在 Fragment 中调用什么

android - 可见并消失了android中的 fragment

android - 在 Android 中使用相同的 fragment 但内容不同

java - 使用 hibernate 用数据填充表的正确方法

java - 不仅为我的帐户获取 Facebook 生日

android - 如何处理 Glide V4 中找不到图像的错误

java - 关于 Wicket 7 中 wicket.properties 位置的冲突警告

java - JSONArray 上的 NullPointerException 在后台线程中初始化

java - Android通知IntentService中的deleteIntent调用函数