Android - настройка цвета значка меню переполнения панели действий (3 точки) [дубликат]

Это довольно просто:

a[start:end] # items start through end-1
a[start:]    # items start through the rest of the array
a[:end]      # items from the beginning through end-1
a[:]         # a copy of the whole array

Также есть значение step, которое можно использовать с любым из вышеперечисленных способов:

a[start:end:step] # start through not past end, by step

Ключевая точка помните, что значение :end представляет первое значение, которое не в выбранном фрагменте. Таким образом, разница между end и start - это количество выбранных элементов (если step равно 1, по умолчанию).

Другая особенность заключается в том, что start или end могут быть отрицательным числом, что означает, что он отсчитывается от конца массива, а не от начала. Итак:

a[-1]    # last item in the array
a[-2:]   # last two items in the array
a[:-2]   # everything except the last two items

Аналогично, step может быть отрицательным числом:

a[::-1]    # all items in the array, reversed
a[1::-1]   # the first two items, reversed
a[:-3:-1]  # the last two items, reversed
a[-3::-1]  # everything except the last two items, reversed

Python является добрым к программисту, если есть меньше предметов, чем вы просите. Например, если вы запрашиваете a[:-2], а a содержит только один элемент, вы получаете пустой список вместо ошибки. Иногда вы предпочитаете ошибку, поэтому вы должны знать, что это может случиться.

47
задан Gaurav 11 July 2012 в 05:39
поделиться

10 ответов

Вы можете изменить изображение, используемое для него, используя следующую декларацию стиля.

<style name="MyCustomTheme" parent="style/Theme.Holo">
    <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
</style>

<style name="MyCustomTheme.OverFlow">
    <item name="android:src">@drawable/my_overflow_image</item>
</style>

И если вы используете ActionBarSherlock, вот как это сделать

<style name="MyCustomTheme" parent="style/Theme.Sherlock">
    <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
    <item name="actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
</style>

<style name="MyCustomTheme.OverFlow">
    <item name="android:src">@drawable/my_overflow_image</item>
</style>
64
ответ дан XGouchet 25 August 2018 в 13:42
поделиться
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.dashboard, menu); // dashboard is xml file name
        Drawable drawable = menu.findItem(R.id.lan).getIcon();
        if (drawable != null) {
            drawable.mutate();
            drawable.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
        }
        return true;
    }

Он работает для меня, и я нашел его из здесь

0
ответ дан Chander Shakher Ghorela - Guru 25 August 2018 в 13:42
поделиться

Ответ XGouchet велик, но просто хотел добавить, что если вы наследуете существующий стиль, вы получите стандартное дополнение, выбранное состояние и т. д.

<style name="MyCustomTheme.OverFlow" parent="Widget.Sherlock.ActionButton.Overflow">
    <item name="android:src">@drawable/title_moreicon</item>
</style>
20
ответ дан Community 25 August 2018 в 13:42
поделиться

Другой программный вариант:

        Drawable drawable = toolbar.getOverflowIcon();
        if(drawable != null) {
            drawable = DrawableCompat.wrap(drawable);
            DrawableCompat.setTint(drawable.mutate(), getResources().getColor(R.color.thecolor));
            toolbar.setOverflowIcon(drawable);
        }

Надеюсь, что это поможет!

3
ответ дан jos 25 August 2018 в 13:42
поделиться

Если вы используете последнюю панель инструментов, вам нужно поместить инструкцию в styles.xml, как показано в следующем коде:

<style name="AppToolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/black</item>
</style>
1
ответ дан Joseph Lam 25 August 2018 в 13:42
поделиться

Помещение изображений не является отличной идеей, потому что, если вы можете изменить его, изменив цвета только тогда, не нужно использовать дополнительный образ. Точки меню выбирают цвет из textColorPrimary, поэтому вместо того, чтобы писать несколько строк, эта единственная строка <item name="android:textColorPrimary">@android:color/white</item> исправит вашу проблему. Только небольшая проблема заключается в том, что этот цвет будет применяться и к цвету текста вашего меню переполнения, а также к множеству других мест:)

2
ответ дан Neo 25 August 2018 в 13:42
поделиться

Если вы используете AppCompat, вы можете получить новый пользовательский стиль с атрибутом android:textColorSecondary, установленным на требуемый цвет, и использовать его в качестве темы для вашей панели инструментов. Android: изменение цвета текста и цвета переполнения панели инструментов

8
ответ дан notsopopularguy 25 August 2018 в 13:42
поделиться

Некоторые из этих ответов являются серьезным излишеством, а некоторые дают ограниченные результаты. Ответ намного проще. Вы можете установить его в любой цвет, который вы хотите, в любое время. Здесь:

toolbar.getOverflowIcon().setColorFilter(colorInt, PorterDuff.Mode.SRC_ATOP);
0
ответ дан Peter Griffin 25 August 2018 в 13:42
поделиться
<style name="MyCustomTheme" parent="@style/Theme.AppCompat.Light">
  <item name="actionOverflowButtonStyle">@style/OverflowMenuButtonStyle</item>
</style>
<style name="OverflowMenuButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow">
  <item name="android:src">@drawable/quantum_ic_more_vert_white_24</item>
</style>

Обратите внимание, что это отличается от ответа XGouchet, удалив пространство имен android. Ответ XGouchet работает только для Lollipop и более высоких устройств, в то время как мои работы работают для всех устройств API 7+.

ref: Пользовательская тема AppCompat не меняет значок переполнения на более старых устройствах

1
ответ дан user8148577 25 August 2018 в 13:42
поделиться

просто добавьте эту строку в ваш выбранный стиль в файле style.xma

<item name="colorControlNormal">@color/white</item>

, который работает нормально. если вы используете

<item name="textColorSecondary">@color/white</item>

, будут затронуты другие ваши элементы, такие как цвет и радио кнопки меню навигации курсора

1
ответ дан Vipendra Singh 25 August 2018 в 13:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: