Как изменить значок меню переполнения Android
Как изменить значок меню переполнения в крайнем правом углу панели действий, как показано на рисунке ниже? Моя тема Holo указывает эту иконку с тремя строками черного стека по умолчанию, и я хочу что-то еще. я не могу найти решение для этого. Я просмотрел документацию на http://developer.android.com/guide/topics/ui/menus.html, но, похоже, не очень помогает.
Спасибо!
!["ActionBar"]()
Ответы
Ответ 1
Определите пользовательский стиль: например, позвоните ему customoverflow
.
В этом стиле вы устанавливаете android:src
на изображение, которое хотите использовать.
Теперь создадим стиль с родительским Theme.holo
.
В этом стиле вам нужно определить:
<item name="android:actionOverflowButtonStyle">@style/customoverflow</item>
Я просто тестировал это, и он работает.
Ответ 2
Вы можете попробовать что-то вроде этого:
<style name="MyTheme" parent="android:style/Theme.Holo.Light">
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/my_action_bTutton_overflow</item>
</style>
и в AndroidManifest.xml
<application
android:theme="@style/MyTheme" >
Ответ 3
Если вы используете AppCompat, вы можете достичь этого кода.
RES/значения/themes.xml
<style name="MyTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
<!-- Support library compatibility -->
<item name="actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
</style>
<style name="ActionButtonOverflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/ic_launcher</item>
</style>
и в androidmanifest.xml
<application
android:theme="@style/MyTheme" >
Ответ 4
Я заметил, что она становится белой, если тема приложения - Holo, но она черноватая, когда тема Holo.Light
Однако, изменив стиль панели действий, чтобы наследовать от Holo и остальную часть приложения от Holo.Light, не решает проблему, но она должна указывать направление, в котором вы должны модифицировать стиль.
Я пробовал:
<style name="AppThemeLight" parent="android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar</item>
<item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/header_brown</item>
<item name="android:titleTextStyle">@style/ActionBarTitle</item>
<item name="android:icon">@drawable/header</item>
</style>
У меня такая же проблема, и я думаю, что это близко к решению
Ответ 5
Решение Shalafi работает с несколькими изменениями! Вам нужно будет указать тему. Holo как родитель для темы, но она имеет недостаток в изменении цвета текста по умолчанию (по крайней мере, в моих стилях).
Измененный код должен быть:
<style name="AppThemeLight" parent="android:style/Theme.Holo">
<item name="android:actionBarStyle">@style/ActionBar</item>
<item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/header_brown</item>
<item name="android:titleTextStyle">@style/ActionBarTitle</item>
<item name="android:icon">@drawable/header</item>
</style>
Ответ 6
Дублирующий вопрос,
Изменение значка переполнения в панели действий
Это мой ответ, как показано ниже,
-
Измените значок пользовательского переполнения панели действий в styles.xml.
<resources>
<!-- Base application theme. -->
<style name="MyTheme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style DONT forget! -->
<item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
</style>
<!-- Styles -->
<style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_your_action_overflow</item>
</style>
</resources>
-
Поместите пользовательскую тему "MyTheme" в тег приложения AndroidManifest.xml
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
Удачи. @. @
Ответ 7
В основном настройки темы, доступные на более новых уровнях API, могут находиться в res/values-vXX/styles.xml
, тогда как настройки, связанные с обратной совместимостью, могут идти values/styles.xml
Решение Шалафи работает с несколькими дополнениями: So
добавьте этот код как к res/values-vXX/styles.xml
, так и к res/values/styles.xml
, и это будет работать как Magic!
<style name="AppTheme" parent="android:style/Theme.Holo.Light">
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>
<style name="MyActionButtonOverflow"parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/your_overflow_icon</item>
</style>
также добавьте его в AndroidManifest.xml
<application
android:theme="@style/AppTheme" >
Ответ 8
<style name="ToolBarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="android:tint">@color/colorAccent</item>
создайте этот атрибут темы и добавьте его на панель инструментов.
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ToolBarTheme"/>