Это довольно просто:
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
содержит только один элемент, вы получаете пустой список вместо ошибки. Иногда вы предпочитаете ошибку, поэтому вы должны знать, что это может случиться.
Вы можете изменить изображение, используемое для него, используя следующую декларацию стиля.
<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>
@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;
}
Он работает для меня, и я нашел его из здесь
Ответ XGouchet велик, но просто хотел добавить, что если вы наследуете существующий стиль, вы получите стандартное дополнение, выбранное состояние и т. д.
<style name="MyCustomTheme.OverFlow" parent="Widget.Sherlock.ActionButton.Overflow">
<item name="android:src">@drawable/title_moreicon</item>
</style>
Другой программный вариант:
Drawable drawable = toolbar.getOverflowIcon();
if(drawable != null) {
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable.mutate(), getResources().getColor(R.color.thecolor));
toolbar.setOverflowIcon(drawable);
}
Надеюсь, что это поможет!
Если вы используете последнюю панель инструментов, вам нужно поместить инструкцию в 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>
Помещение изображений не является отличной идеей, потому что, если вы можете изменить его, изменив цвета только тогда, не нужно использовать дополнительный образ. Точки меню выбирают цвет из textColorPrimary, поэтому вместо того, чтобы писать несколько строк, эта единственная строка <item name="android:textColorPrimary">@android:color/white</item>
исправит вашу проблему. Только небольшая проблема заключается в том, что этот цвет будет применяться и к цвету текста вашего меню переполнения, а также к множеству других мест:)
Если вы используете AppCompat, вы можете получить новый пользовательский стиль с атрибутом android:textColorSecondary
, установленным на требуемый цвет, и использовать его в качестве темы для вашей панели инструментов. Android: изменение цвета текста и цвета переполнения панели инструментов
Некоторые из этих ответов являются серьезным излишеством, а некоторые дают ограниченные результаты. Ответ намного проще. Вы можете установить его в любой цвет, который вы хотите, в любое время. Здесь:
toolbar.getOverflowIcon().setColorFilter(colorInt, PorterDuff.Mode.SRC_ATOP);
<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 не меняет значок переполнения на более старых устройствах
просто добавьте эту строку в ваш выбранный стиль в файле style.xma
<item name="colorControlNormal">@color/white</item>
, который работает нормально. если вы используете
<item name="textColorSecondary">@color/white</item>
, будут затронуты другие ваши элементы, такие как цвет и радио кнопки меню навигации курсора