我正在使用 ViewPager2,并且在 viewPager2.setAdapter
上收到以下错误:
incompatible types: ViewPagerAdapter cannot be converted to Adapter
主 Activity
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(),fragmentList);
viewPager2.setAdapter(viewPagerAdapter);
ViewPager适配器
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
private List<PagerFragment> fragments;
public ViewPagerAdapter(FragmentManager fm, List<PagerFragment> fragments) {
super(fm);
this.fragments = fragments;
}
/* (non-Javadoc)
* @see android.support.v4.app.FragmentPagerAdapter#getItem(int)
*/
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
/* (non-Javadoc)
* @see android.support.v4.view.PagerAdapter#getCount()
*/
@Override
public int getCount() {
return this.fragments.size();
}
}
最佳答案
您正在尝试将 ViewPager
v1 适配器与 ViewPager2
结合使用。您应该转换您的适配器以实现 FragmentStateAdapter
相反。
参见this section of the migration documentation了解更多信息。特别是,您需要将 getCount
方法重命名为 getItemCount
,并将 getItem
重命名为 createFragment
并使其每次返回一个新的 Fragment
而不是重新使用实例。
关于java - Androidx ViewPager2 不兼容类型 : ViewPagerAdapter cannot be converted to Adapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60806199/