FragmentTransaction 类型中的方法 add(int, Fragment, String) 不适用于参数 (int, Fragment, String)

Posted

技术标签:

【中文标题】FragmentTransaction 类型中的方法 add(int, Fragment, String) 不适用于参数 (int, Fragment, String)【英文标题】:The method add(int, Fragment, String) in the type FragmentTransaction is not applicable for the arguments (int, Fragment, String) 【发布时间】:2013-03-09 04:58:36 【问题描述】:

我有这个问题..

The method add(int, Fragment, String) in the type FragmentTransaction is not applicable for the arguments (int, Fragment, String)

FragenmtActivity 中使用以下代码时

getSupportFragmentManager().beginTransaction().add(com.korovyansk.android.slideout.R.id.slideout_placeholder,  ((Fragment)new CommentsMenuFragment()), "menu").commit();

CommentsMenuFragment 实现在哪里:

public class CommentsMenuFragment extends Fragment 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        View view = inflater.inflate(R.layout.fragment_comment, container, false);
        ListView lvComments = (ListView) view.findViewById(R.id.lvComments);



        return view;
    


【问题讨论】:

你用的是android.support.v4.app.Fragment还是android.app.Fragment? 谢谢我在下面的问题***.com/questions/11753921/error-in-fragment中找到了答案 【参考方案1】:

检查您的 CommentsMenuFragment 是否从 android.support.v4.app.Fragment 而不是 android.app.Fragment 扩展。

【讨论】:

它帮助了我,我的 Fragment 被导入为 android.app.fragment,我将导入更改为 android.support.v4.app,并且我的 FragmentActivity 的添加错误消失了。谢谢@PaNaVTEC

以上是关于FragmentTransaction 类型中的方法 add(int, Fragment, String) 不适用于参数 (int, Fragment, String)的主要内容,如果未能解决你的问题,请参考以下文章

FragmentTransaction.replace()中错误的第二个参数类型

FragmentTransaction的commit和commitAllowingStateLoss的差别

如何实现 FragmentManager 和 FragmentTransaction 来替换单个片段?

fragmentTransaction.add 和 fragmentTransaction.replace 之间的区别

共享元素过渡适用于 FragmentTransaction.replace() 但不适用于 FragmentTransaction.add()

操作栏在 FragmentTransaction replace() 和 FragmentTransaction add() 上的行为方式