getChildFragmentManager - 无法解析方法

时间:2016-01-14 19:39:03

标签: android android-fragments

我为我的应用“YouTubePlaylist”https://github.com/akoscz/YouTubePlaylist使用了一个项目。

我已经制作了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();

    }



}

我该如何解决此错误? 谢谢

2 个答案:

答案 0 :(得分:1)

该库可能与您使用的Fragment类不同。

根据Github项目,YouTubeRecyclerViewFragmentandroid.support.v4.app.Fragment,即v4-support库的片段的子类。并且您最有可能使用原生android.app.Fragment。这两个Fragment类都不兼容,因此方法add()不能接受其他类型的Fragment。

这意味着您必须使用支持库并使用其Fragment类。请注意,您还必须使用AppCompatActivity而不是本机Activity类。

要从本机类迁移到支持库,您可以查看this migration guide

答案 1 :(得分:0)

1)。尝试覆盖onCreateView()以扩充YouTubeActivity Fragment Class中的布局。有关更清晰的信息,请参阅this

2)。尝试在YouTubeActivity和YouTubeRecyclerViewFragment中查找Fragment类的导入。这两者应该是一致的。您应该为这两者导入android.app.Fragmentandroid.support.v4.app.Fragment

3)。我不知道为什么你需要getChildFragmentManager()(除非它是一个嵌套的片段情况)才能在你的情况下制作FragmentTransaction。如果您要使用android.app.Fragment,则可以通过getFragmentManager()完成片段事务,如果您要使用支持片段导入当前的YouTubeActivity Fragment,则可以使用getSupportFragmentManager()