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