FragmentPagerAdapter 覆盖 getItem() 方法冲突

Posted

技术标签:

【中文标题】FragmentPagerAdapter 覆盖 getItem() 方法冲突【英文标题】:FragmentPagerAdapter override getItem() method *** 【发布时间】:2015-08-13 19:51:05 【问题描述】:

为了在 android 中实现滑动标签,我正在遵循本指南:Google Play Style Tabs using TabLayout

在实现FragmentPageAdapter 时,我遇到了“getItem()”方法的问题,该方法应该返回具有相关位置的片段,在本例中为“PageFragment.newinstance(position + 1)” .成为 PageFragment 一个通用的 Fragment。 问题本身是:

'com.myProject.SampleFragmentPagerAdapter' 中的

'getItem(int)' 发生冲突 在'android.support.v4.app.FragmentPagerAdapter'中使用'getItem(int)'; 尝试使用不兼容的返回类型

谁能找出问题出在哪里?

我已附上指南的 SampleFragmentPagerAdapter 以便更快地检查:

    public class SampleFragmentPagerAdapter extends FragmentPagerAdapter 
    final int PAGE_COUNT = 3;
    private String tabTitles[] = new String[]  "Tab1", "Tab2", "Tab3" ;
    private Context context;

    public SampleFragmentPagerAdapter(FragmentManager fm, Context context) 
        super(fm);
        this.context = context;
    

    @Override
    public int getCount() 
        return PAGE_COUNT;
    

    @Override
    public Fragment getItem(int position) 
        return PageFragment.newInstance(position + 1);
    

    @Override
    public CharSequence getPageTitle(int position) 
        // Generate title based on item position
        return tabTitles[position];
    

【问题讨论】:

遇到问题需要你的帮助***.com/questions/40149039/… 【参考方案1】:

解决了,问题是SampleFragmentPagerAdapter类使用android.support.v4.app.Fragment

我在 PageFragment 类中使用 android.app.Fragment

这导致 SampleFragmentPagerAdapter 的 getItem 方法由于库不同而在类型之间发生冲突。

解决方案?从

更改导入行
android.app.Fragment 

android.support.v4.app.Fragmentin PageFragment Class.

【讨论】:

以上是关于FragmentPagerAdapter 覆盖 getItem() 方法冲突的主要内容,如果未能解决你的问题,请参考以下文章

使用 FragmentPagerAdapter 的 FragmentTransaction

无法更新FragmentPagerAdapter中的片段

为啥我不能从 FragmentPagerAdapter 分离片段?

使用 ViewPager + FragmentPagerAdapter 处理方向更改

ViewPager中的FragmentPagerAdapter,FragmentStatePagerAdapter

使用 FragmentPagerAdapter 时如何获取现有片段