【问题标题】:found this error on migrating to viewpager2 androidx "Cannot resolve method 'super(androidx.fragment.app.FragmentManager)'"在迁移到 viewpager2 androidx 时发现此错误“无法解析方法 'super(androidx.fragment.app.FragmentManager)'”
【发布时间】:2021-12-03 21:57:30
【问题描述】:

当前代码

class ViewPagerAdapter extends FragmentStateAdapter {

        private ArrayList<Fragment> fragments;
        private ArrayList<String> titles;

        ViewPagerAdapter(FragmentManager fm){
            super(fm);
            this.fragments = new ArrayList<>();
            this.titles = new ArrayList<>();
        }

【问题讨论】:

  • 这不是constructors available 之一。您是否有理由不使用采用 Fragment(如果您的 ViewPager2 在 Fragment 内)或 FragmentActivity(如果您的 ViewPager2 直接在您的活动布局中)的构造函数?
  • 也收到此错误 - 'com.example.uloimare.MainActivity.ViewPagerAdapter' 中的 'ViewPagerAdapter(androidx.fragment.app.FragmentActivity, androidx.lifecycle.Lifecycle)' 不能应用于 '(androidx .fragment.app.FragmentManager)'

标签: android android-fragments android-viewpager2


【解决方案1】:

从版本 androidx.viewpager2:viewpager2:1.0.0-alpha03 FragmentStateAdapter 现在需要一个 Lifecycle 对象。添加了两个实用程序构造函数以从 FragmentActivity 主机或 Fragment 主机获取它。

public class PageAdapter extends FragmentStateAdapter {    
    public PageAdapter(FragmentManager fragmentManager,Lifecycle lifecycle) {
       super(fragmentManager, lifecycle);
    }

初始化 FragmentStateAdapter

PageAdapter PageAdapter = new PageAdapter(getSupportFragmentManager(), getLifecycle());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-23
    • 2019-01-18
    • 2019-11-07
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2019-06-27
    • 2019-07-08
    相关资源
    最近更新 更多