обнаружена эта ошибка при переходе на viewpager2 androidx «Не удается разрешить метод» super(androidx.fragment.app.FragmentManager)»»

#android #android-fragments #android-viewpager2

Вопрос:

текущий код

 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<>();
        }
 

Комментарии:

1. Это не один из доступных конструкторов . Есть ли причина, по которой вы не используете конструктор, который принимает Fragment (если ваш ViewPager2 находится внутри фрагмента) или FragmentActivity (если ваш ViewPager2 находится непосредственно в макете вашего действия)?

2. также появляется эта ошибка — ‘ViewPagerAdapter(androidx.фрагмент.приложение.фрагментактивность, androidx.жизненный цикл. Жизненный цикл)» в «com.example.uloimare. Основная активность. ViewPagerAdapter’ не может быть применен к ‘(androidx.fragment.app.FragmentManager)’

Ответ №1:

Начиная с версии androidx.viewpager2:viewpager2:1.0.0-alpha03 FragmentStateAdapter теперь требует объекта жизненного цикла. Добавлены два конструктора утилит, чтобы получить его с хоста FragmentActivity или хоста фрагментов.

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

инициализировать фрагментстат-адаптер

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