在迁移到 viewpager2 androidx 时发现此错误“无法解析方法 'super(androidx.fragment.app.FragmentManager)'”
Posted
技术标签:
【中文标题】在迁移到 viewpager2 androidx 时发现此错误“无法解析方法 \'super(androidx.fragment.app.FragmentManager)\'”【英文标题】: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)'
【参考方案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());
【讨论】:
以上是关于在迁移到 viewpager2 androidx 时发现此错误“无法解析方法 'super(androidx.fragment.app.FragmentManager)'”的主要内容,如果未能解决你的问题,请参考以下文章
Android ------ ViewPager1和ViewPager2的使用
Android ------ ViewPager1和ViewPager2的使用
Android ------ ViewPager1和ViewPager2的使用
ViewPager2 迁移后出现无效 ID 0x00000001 错误
迁移到AndroidX后:无法实例化类:androidx.appcompat.widget.ShareActionProvider。