FragmentPagerAdapter 覆盖 getItem() 方法冲突
FragmentPagerAdapter override getItem() method clash
为了在 Android 中实现滑动标签,我遵循了这个指南:Google Play Style Tabs using TabLayout
在实施 FragmentPageAdapter 时,我遇到了 "getItem()" 方法的问题,该方法应该 return 具有相关位置的片段,在这种情况下 "PageFragment.newinstance(position + 1)"。作为 PageFragment 一个通用的片段。
问题本身是:
'getItem(int)' in 'com.myProject.SampleFragmentPagerAdapter' clashed
with 'getItem(int)' in 'android.support.v4.app.FragmentPagerAdapter';
attempting to use incompatible return types
有人能找出问题出在哪里吗?
我附上了指南的 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];
}
}
已解决,问题是 SampleFragmentPagerAdapter
class 使用 android.support.v4.app.Fragment
我在 PageFragment
class 中使用 android.app.Fragment
。
这导致 SampleFragmentPagerAdapter 的 getItem 方法由于不同的库而在类型之间发生冲突。
解决方案?从
更改导入行
android.app.Fragment
到
android.support.v4.app.Fragmentin PageFragment Class.
为了在 Android 中实现滑动标签,我遵循了这个指南:Google Play Style Tabs using TabLayout
在实施 FragmentPageAdapter 时,我遇到了 "getItem()" 方法的问题,该方法应该 return 具有相关位置的片段,在这种情况下 "PageFragment.newinstance(position + 1)"。作为 PageFragment 一个通用的片段。 问题本身是:
'getItem(int)' in 'com.myProject.SampleFragmentPagerAdapter' clashed with 'getItem(int)' in 'android.support.v4.app.FragmentPagerAdapter'; attempting to use incompatible return types
有人能找出问题出在哪里吗?
我附上了指南的 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];
}
}
已解决,问题是 SampleFragmentPagerAdapter
class 使用 android.support.v4.app.Fragment
我在 PageFragment
class 中使用 android.app.Fragment
。
这导致 SampleFragmentPagerAdapter 的 getItem 方法由于不同的库而在类型之间发生冲突。
解决方案?从
更改导入行android.app.Fragment
到
android.support.v4.app.Fragmentin PageFragment Class.