У меня есть деятельность, связанная следующая тема: Theme.AppCompat.Light.DarkActionBar
. В результате, названиеActionBar и пункт меню «больше» опций все белые, как я бы ожидать:Change actionbar spinner theme
Но, как вы можете видеть на скриншоте, падение вниз меню имеет черный фон. Я хотел бы, чтобы выпадающее меню имело сероватый фон (см. Снимок экрана ниже).
Я заметил, что стиль выпадающего меню связано с общим стилем деятельности, например, если стиль деятельности изменяется на: Theme.AppCompat.Light
, то это будет выглядеть сейчас вроде этого:
, который является именно тем видом стиля, который я ищу, но, как вы могли заметить, название панели действий и опции «больше» теперь являются черными, что дает тему, но это уже не то, что я необходимость.
Теперь я знаю, что есть несколько способов справиться с этой ситуацией: первый из них не будет использовать список режимов навигации вообще, потому что он устарел уже, другой должен был бы использовать Toolbar
и иметь Spinner
внутри, оба в стиле. Но прежде чем идти по этому маршруту, я хочу убедиться, что, возможно, есть более простой подход.
Я пытался иметь собственную тему, которая простирается от Theme.AppCompat.Light
:
<style name="LightTheme" parent="Theme.AppCompat.Light" />
, а затем использовать его, чтобы создать тематический контекст, когда накачивание выпадающего меню:
Context context = new ContextThemeWrapper(this, R.style.LightTheme);
CustomAdapter adapter = new CustomAdapter(context);
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(adapter, null);
но, к сожалению не имел никакого эффекта.
Итак, можно ли изменить стиль выпадающего меню, не затрагивая другие компоненты, например: панель действий?
Отлично! Спасибо. –