FragmentPagerAdapter覆盖了getItem()方法,导致冲突。

4
为了在Android中实现滑动选项卡,我正在按照这个指南操作:使用TabLayout创建Google Play风格的选项卡 在实现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];
    }
}

遇到了一些问题,需要您的帮助。http://stackoverflow.com/questions/40149039/viewpager-recyclerview-issue - albert
1个回答

11

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

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

这导致了SampleFragmentPagerAdapter的getItem方法在不同库之间出现类型冲突。

解决方案?将导入行更改为

android.app.Fragment 
转换为
android.support.v4.app.Fragmentin PageFragment Class.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接