Respostas:
Você pode com um estilo, mas deve adicioná-lo à declaração do tema principal.
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
Você também pode alterá-lo dinamicamente, sobre o qual vou entrar em detalhes aqui:
Alterar o ícone do menu Android Overflow de maneira programática
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
parece funcionar para mim.
Para aqueles que não conseguem fazer funcionar, experimente SEM o namespace "android:".
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Altere o ícone de estouro personalizado da Actionbar em 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>
Coloque o tema personalizado "MyTheme" na tag do aplicativo de AndroidManifest.xml
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
Diverta-se.@.@
Não importa o que eu tentei fazer styles.xml
, nenhuma das soluções funcionou para mim. No final, se você tiver o AppCompat 23+, o que deveria ser, esta é a maneira mais fácil de realmente funcionar:
toolbar.setOverflowIcon(drawable);
resposta de @adneal está correta (portanto, esta é apenas uma explicação do wiki da comunidade para expandi-la).
Um dos comentários sugeriu que pode haver um mal-entendido sobre como fazer isso, então minha resposta é apenas outro exemplo de como substituir a imagem do ícone de estouro.
O código a seguir é baseado nos estilos de modelo da amostra do ADT New Android Project. O código vem do styles.xml
arquivo na res/values
pasta.
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>
O que este código acima faz é substituir o ícone de estouro padrão por qualquer drawable que você tenha com o nome ic_menu_moreoverflow
. Se você quiser uma maneira rápida de testá-lo, use o nome do arquivo do ícone do iniciador do seu aplicativo, o que tornará óbvio como funciona.
Um recurso útil para usar ao tentar entender o ActionBar
estilo é:
Lá você pode definir cores específicas a serem usadas para o ícone de estouro, e o arquivo ZIP incluirá o styles.xml
arquivo correto para você.
Para alterar a cor do ícone de estouro, você pode apenas adicionar
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
ou
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
Isso mudará o ícone, escolherá a cor desejada e definirá como um ícone de estouro.
Depois de muito pesquisar quais orientações eu tenho a seguir, como:
Adicione o item dentro do tema no theme.xml:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
Adicione o ícone no estilo no mesmo arquivo. Quero dizer theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
Verifique o ícone personalizado que você deseja alterar
Funcionou para mim