Почему существуют 2 разных класса ComponentActivity? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь обрабатывать нажатия кнопок «назад» в своих фрагментах, регистрируя OnBackPressedCallback через addOnBackPressedCallback для получения onBackPressed() обратных вызовов без необходимости переопределения метода в вашей деятельности (описано выпуск 5 ноября 2018 г.примечания для androidx.activity )

Если вы посмотрите на AppCompatActivity Docs , он утверждает, что AppCompatActivity простирается от androidx.activity.ComponentActivity.

Проблема I 'В моем коде работает m, AppCompatActivity простирается от androidx.core.app.ComponentActivity (не имеет addOnBackPressedCallback()) вместо androidx.activity.ComponentActivity (имеет addOnBackPressedCallback()).

Мои версии зависимостей

implementation "androidx.core:core-ktx:1.0.1"
implementation "androidx.appcompat:appcompat:1.0.2"
implementation "androidx.activity:activity-ktx:1.0.0-alpha04"

Кто-нибудь еще может воспроизвести эту проблему?Я что-то не так делаю?

1 Ответ

0 голосов
/ 28 февраля 2019

androidx.core.app.ComponentActivity - это скрытый класс, который использовался до того, как androidx.activity.ComponentActivity был создан как часть AndroidX Activity 1.0 и Fragment 1.1.0

. Вам нужно переключиться на androidx.appcompat:appcompat:1.1.0-alpha02, чтобы получить Fragment 1.1.0, который изменяет FragmentActivity (и, следовательно, AppCompatActivity) на расширение androidx.activity.ComponentActivity

...