getSupportFragmentManager:不兼容的类型

时间:2018-05-08 18:12:11

标签: android android-fragments

我遵循了本教程:https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer

现在我在这一点上:

// Insert the fragment by replacing any existing fragment
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();

        // Highlight the selected item has been done by NavigationView
        menuItem.setChecked(true);
        // Set action bar title
        setTitle(menuItem.getTitle());
        // Close the navigation drawer
        mDrawer.closeDrawers();

我的问题是这一行..

FragmentManager fragmentManager = getSupportFragmentManager();

告诉我一个错误:不兼容的类型。需要android.app.FragmentManager找到:android.support.v4.app.FragmentManager。

我看到了一些帖子,但它们对我不起作用。

我使用AppCompatActivity扩展我的类,尝试了FragmentActivity,但这不起作用。

如果我将FragmentManager更改为android.support.v4.app.FragmentManager,则错误消失但

fragmentManager.beginTransaction()。replace(R.id.flContent, fragment )。commit();显示:错误的第二个参数type.Found:'android.app.Fragment',required'android.support.v4.app.Fragment'

请帮助我:/

1 个答案:

答案 0 :(得分:2)

更改

import android.app.Fragment;
import android.app.FragmentManager;

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

在每个班级。您遇到问题,因为在您的Fragment创建类中,您正在使用支持v4片段,而在您的MainActivity类中,您正在膨胀为一个简单的片段。

您还需要将getFragmentManager()更改为 getSupportFragmentManager(),并确保它们正在扩展FragmentActivity类。

希望它会对你有所帮助。