2016-01-14 117 views
-2

我爲我的應用「YouTubePlaylist」https://github.com/akoscz/YouTubePlaylist使用了一個項目。getChildFragmentManager - 無法解析方法

我做了一個navigation drawer,我想把這個活動放在片段中。所以,我嘗試創建一個fragment,並把它,但我有一個錯誤:Cannot resolve method 'add(int, com.xx.xx.YouTubeReclyclerViewFragment)'

這是我的片段:

public class YouTubeActivity extends Fragment { 
    private static final String YOUTUBE_PLAYLIST = "XXXXXXXXXXXXXXXXX"; 
    private YouTube mYoutubeDataApi; 
    public static final String TAG = "YouTubeActivity"; 
    private final GsonFactory mJsonFactory = new GsonFactory(); 
    private final HttpTransport mTransport = AndroidHttp.newCompatibleTransport(); 
    public static FragmentManager fgmanger; 


    public void onCreate(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     View rootView = inflater.inflate(R.layout.youtube_activity, container, false); 

     //setContentView(R.layout.); 

      mYoutubeDataApi = new YouTube.Builder(mTransport, mJsonFactory, null) 
        .setApplicationName(getResources().getString(R.string.app_name)) 
        .build(); 


      getChildFragmentManager().beginTransaction() 
        .add(R.id.container, YouTubeRecyclerViewFragment.newInstance(mYoutubeDataApi, YOUTUBE_PLAYLIST)) 
        .commit(); 

    } 



} 

我可怎麼辦解決這個問題? 謝謝

+1

聽起來像一個庫的衝突http://stackoverflow.com/questions/28849554/cannot-resolve-method-addint-new-tfragment-commit-in-android-studion-1-0 – ElliotM

+0

public void onCreate( LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState)' - 這個方法在任何'Activity'或'Fragment'類中都不存在......你可能想要'onCreateView()'。你也調用super。 onCreate(savedInstanceState)'在一個沒有意義的地方。 – PPartisan

回答

1

該庫使用的類可能與您的類不一樣Fragment類。

根據Github項目,YouTubeRecyclerViewFragmentandroid.support.v4.app.Fragment,即v4-支持庫的片段的子類。而你很可能使用本地android.app.Fragment。這兩個片段類都是不兼容的,因此方法add()不能接受其他類型的片段。

這意味着您必須使用支持庫並使用它的Fragment類。請注意,那麼您還必須使用AppCompatActivity而不是本地Activity類。

要從本機類遷移到支持庫,您可以查看this migration guide

+0

哦謝謝你哥們=) – johnsnow85

0

1)。嘗試覆蓋onCreateView()以擴大您的YouTubeActivity片段分類中的佈局。爲了更加清晰,請參閱this。 2)。嘗試在YouTubeActivity和YouTubeRecyclerViewFragment中查找Fragment類的導入。它們應該一致。要麼你應該爲這兩個進口android.app.Fragmentandroid.support.v4.app.Fragment

3)。我不知道爲什麼你需要getChildFragmentManager()(直到除非它是一個嵌套片段的情況下)在你的情況下做FragmentTransaction。如果您要使用android.app.Fragment,則可以使用getFragmentManager()來完成片段事務,如果要使用支持片段導入當前的YouTubeActivity Fragment,則使用getSupportFragmentManager()

+0

謝謝你哥們=) – johnsnow85

+0

你好,歡迎哥們:) –