Как Activity.getActionBar в AndroidX работает? - PullRequest
0 голосов
/ 04 февраля 2019

В моем приложении у меня есть LoginActivity, с которого я хочу поменяться на NavigationDrawerActivity после входа в систему.Поэтому я изменил код LoginActivity, чтобы Button просто запускал NavigationDrawerActivity, который я сделал через New> New Activity> NavigationDrawerActivity .Поскольку я использую AndroidX, есть небольшая проблема в предопределенном методе

private ActionBar getActionBar()
{
    return getActivity().getActionBar();
}

Требуется androidx.appcompat.app.ActionBar, но он находит android.app.ActionBar.

Я ofc уже нашел проблему, и некоторыескажем, что мне нужно расширить с AppCompatActivity вместо FragmentActivity, но класс просто расширяется с Fragment.Вот почему я не могу использовать getActivity().getSupportActionBar().Я также пытался привести getActivity() к AppCompatActivity как этот ((AppCompatActivity)getActivity()).getSupportActionBar(), но это выглядит довольно странно:

weird

, но я ожидаю, что это будет выглядеть так:

normal

PS: некоторые раскрашены и не представляют конечное содержание.Показывает реальное название приложения

1 Ответ

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

Я нашел проблему.Похоже, что Android Studio что-то там портит, когда я изменяю свой AppTheme с Theme.AppCompat.Light.DarkActionBar на Theme.MaterialComponents.Light.DarkActionBar, а затем создаю новый NavigationDrawerActivity.Он работает так, как я хочу, когда я сначала создаю NavDrawerActivity, а затем меняю тему.

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