2017-09-24 25 views
0

我試圖讓動態當前出現或者表現出片段的實例如下:的數據類型來使用,如果我想刪除它動態

fragment = getSupportFragmentManager().findFragmentById(R.id.fragmentContainer); 

但是這個代碼返回以下類型的機器人。 support.v4.app.Fragment 後來我想刪除片段,我剛纔獲得的如下實例:

mFragmentTransaction.remove(fragment); 

,但這種方法並不能接受這種類型的android.support.v4.app.Fragment

如何解決這個問題,請。

回答

1

您的變量mFragmentTransaction應該使用getSupportFragmentManager().beginTransaction()方法進行初始化。也許你已經使用了getFragmentManager()對象,女巫在你的情況下會不正確。

1

檢查您的導入。如果你看到下面的導入:

import android.app.Fragment; 

你會想將其更改爲支持庫的版本保持一致如下:

import android.support.v4.app.Fragment; 
0

檢查import語句,並確保不要混用「支持「片段和」原生「片段。您必須使用一致的片段,並且許多人推薦「原生」版本的「支持」版本,在這種情況下,您應該使用getSupportFragmentManager

此外,由於您希望刪除片段,請確保片段容器不是以XML格式進行硬編碼。如果你打算替換或刪除一個片段,那麼你的代碼應該動態加載最初的片段(你通常會使用id作爲你的R.id.{frameLayoutId}加載到FrameLayout中),否則它將無法工作。

相關問題