java - Androidx ViewPager2 不兼容类型 : ViewPagerAdapter cannot be converted to Adapter

标签 java android androidx android-jetpack android-viewpager2

我正在使用 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/

相关文章:

android - 我的错误 : Use JsonReader. setLenient(true) 在第 1 行第 1 列路径 $ 处接受格式错误的 JSON

java - Java 中的多重模式匹配

java - Java Encog 3 中的 OpenCL 后端

android - 将部分数据库模型从服务器同步到客户端

android - Android 上 lib 的 Emma 代码覆盖率

android - 如何使用 ConstraintLayout 获取具有不同单元格大小的 gridview - 流程

android - 顺利从芯片组中移除一个安卓芯片

android - 无法解析 : com. android.support :appcompat-v7:30. 0.0

Java不会使用parseInt

java - 如何从 ListView 和 SharedPreferences 中删除特定项目?