java - Androidx ViewPager2 不兼容类型:ViewPagerAdapter 无法转换为 Adapter
问题描述
我正在使用 ViewPager2,但出现以下错误viewPager2.setAdapter
:
不兼容的类型:ViewPagerAdapter 无法转换为 Adapter
主要活动
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(),fragmentList);
viewPager2.setAdapter(viewPagerAdapter);
ViewPagerAdapter
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
。
有关更多信息,请参阅迁移文档的此部分。特别是,您需要将getCount
方法重命名为getItemCount
,以及重命名getItem
为createFragment
并使其Fragment
每次都返回一个新的,而不是重复使用实例。
推荐阅读
- apache-spark - 在 spark 中使用 hive 外部元数据
- java - 在 Principle 上存储多个值
- sql-server - 基于开始和结束日期的年/月记录返回金额
- php - 从没有元素 id 的 DOM->getElementById 中检索内容
- html - 使用 Gsap 在 Swiper 滑块上显示动画的图像
- excel - 计算过滤子集中的唯一值
- python - Python:比较两个csv文件单列并在单独的文件中写入不重复的条目
- javascript - react-redux-firebase 错误'Firebase 实例尚不存在。检查您的撰写功能。
- outlook-addin - 交换本地和需求集
- here-api - HERE 地图 - 是否可以翻译事件文本?