我正在尝试获取动态当前显示或显示片段的实例,如下所示:
fragment = getSupportFragmentManager().findFragmentById(R.id.fragmentContainer);
但此代码返回以下类型android.support.v4.app.Fragment 后来我想删除我之前获得如下实例的那个片段:
mFragmentTransaction.remove(fragment);
但此方法不接受此类型android.support.v4.app.Fragment
请如何解决这个问题。
答案 0 :(得分:1)
应使用mFragmentTransaction
方法初始化变量getSupportFragmentManager().beginTransaction()
。也许你已经使用了getFragmentManager()
对象,在你的情况下,女巫会不正确。
答案 1 :(得分:1)
检查您的进口商品。如果您看到以下导入:
import android.app.Fragment;
您需要将其更改为支持库版本以保持一致性,如下所示:
import android.support.v4.app.Fragment;
答案 2 :(得分:0)
检查您的导入声明,并确保您没有混合"支持"片段和" Native"片段。您必须使用一致的片段,许多人建议使用"支持"版本超过" Native"版本,在这种情况下,您应该使用getSupportFragmentManager
。
此外,由于您希望删除片段,请确保片段容器未在XML中进行硬编码。如果您打算替换或删除片段,那么初始片段应该由您的代码动态加载(您通常会使用id作为R.id.{frameLayoutId}
加载到FrameLayout中),否则它将无效。