#android #style
У меня есть много активити(да это ужас, но такой проект достался, и я его переделываю)
и базовая которая наследует тему:
остальные активити наследуют базовую
SubscriptionListActivity extends BaseActivity
и естественно в них нету ActionBar'а, что мне и нужно. Но среди них, есть одна активити,
которая его использует. В ней есть такой код как например:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
...
Но так как она наследуется от базовой то getSupportActionBar() ворачевает null
Я пробовал в манифесте написать просто:
android:theme="@style/Theme.AppCompat" для нее, но не помогло.
Вижу один выход - сделать Базовую от android:theme="@style/Theme.AppCompat"
а потом каждого ее ребенка прописывать без екшенбара.
Вопрос- как мне все сделать красиво и правильно? и еще вопрос - может как то можно
просто убрать Title из Theme.AppCompat и не использовать тему Theme.AppCompat.NoActionBar?
Ответы
Ответ 1
В вашей ситуации, на той Activity, на которой вам требуется ActionBar, просто добавьте Toolbar. ActionBar уже устарел, и вместо него рекомендуется использовать как раз Toolbar. Он появится даже с вашей базовой темой (даже больше, при его использовании обязательно надо прописывать тему NoActionBar). Исчерпывающие туториалы по использованию Toolbar вы найдёте здесь или тут, на русском.Ответ 2
Вы можете просто добавить ActionBar c помощью класса Toolbar (есть в Appcompat Support Library) в разметку активити и далее в коде её найти и назначить в качестве ActionBar: Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar);
Комментариев нет:
Отправить комментарий