Не удается разрешить метод getParentFragmentManager - PullRequest
0 голосов
/ 25 марта 2020

Я очищаю небольшой Android проект, и вместо этого использование многообещающих библиотек поддержки и использование androidx показалось многообещающим. Тем не менее, я сталкиваюсь со странной проблемой в моей MainActivity. java:

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

private void setupFragments(){
    //...
    ViewPager viewPager = findViewById(R.id.pager);
    ViewPagerAdapter adapter = new ViewPagerAdapter(getParentFragmentManager());
    viewPager.setAdapter(adapter);
    viewPager.setOffscreenPageLimit(2);
    tabLayout.setupWithViewPager(viewPager);
    //...

В старой версии вместо этого использовался getFragmentManager(). Тем не менее, теперь я получаю Cannot resolve method getParentFragmentManager ошибку компиляции и Android Studio предлагает мне создать собственную функцию getParentFragmentManager. Согласно моим исследованиям, эта функция должна быть доступна при импорте библиотек androidx, как указано выше.

Что мне здесь не хватает?

РЕДАКТИРОВАТЬ: В случае, если это связано, я также получаю устаревшее предупреждение для FragmentManager от androidx в определении моего FragmentPagerAdapter:

publi c класс ViewPagerAdapter extends FragmentPagerAdapter {ViewPagerAdapter (FragmentManager fm) {// <---- устарело super (fm); } </p>

Что касается версии androidx.fragment: используемый фрагмент, я использую только implementation 'androidx.fragment:fragment-ktx:1.2.2', как предложено в ответах (до этого ничего не было).

Импорт androidx.fragment.app.FragmentTransaction не дал никаких изменений , Также отображается как неиспользуемый.

Ответы [ 3 ]

0 голосов
/ 25 марта 2020

Функция была добавлена ​​в версии 1.2.0 компонента Fragment.

Попробуйте изменить в файле build.gradle (с текущей стабильной версией):
implementation 'androidx.fragment:fragment-ktx:1.2.2 '

0 голосов
/ 25 марта 2020

Вы должны попробовать использовать: activity.getSupportFragmentManager()

0 голосов
/ 25 марта 2020

Используйте getSupportFragmentManager(); вместо getParentFramentManager();, и оно должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...