У меня проблема с дополнительным меню. Мне нужно заменить 3 точки моим изображением. Я пробовал несколько способов, но не работал.

В свой файл styles.xml я добавил следующий код:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    ...
    <item name="actionOverflowButtonStyle">@style/MyOverFlowMenu</item>
    <item name="android:actionOverflowButtonStyle">@style/MyOverFlowMenu</item>
</style>

<style name="MyOverFlowMenu" parent="Widget.AppCompat.ActionButton.Overflow">
    <item name="android:src">@drawable/my_overflow</item>
</style>

Мое приложение работает с Android 4.4 и выше. Может ли кто-нибудь сообщить мне, что не так с этим кодом? Заранее спасибо.

1
Anju 5 Сен 2016 в 11:41

2 ответа

Лучший ответ

Это работало, когда я делал программно. Вот код того же:

Drawable drawable = ContextCompat.getDrawable(getApplicationContext(), R.drawable.my_overflow);
toolbar.setOverflowIcon(drawable);
0
Anju 5 Сен 2016 в 11:45

Ваш @drawable/my_overflow должен быть в формате XML, подобном этому:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="false"
        android:drawable="@drawable/my_overflow_icon_unpressed">
    </item>
    <item android:state_pressed="true"
        android:drawable="@drawable/my_overflow_icon_pressed" >
    </item> 
</selector>

Конечно, убедитесь, что у вас есть файлы в формате png для my_overflow_icon_unopressed и my_overflow_iconPressed.

-1
Zinc 5 Сен 2016 в 11:51