Подтвердить что ты не робот

Как настроить цвет и текст режима действия?

В режиме действия по умолчанию (3.0 и выше) есть зеленая тема и кнопка "Готово" с левой стороны. Как я могу их настроить?

Спасибо

4b9b3361

Ответ 1

Это стиль, используемый для любого ActionMode, я вытащил его из SDK. Вам нужно будет создать свой собственный стиль, чтобы настроить его. Это очень легко сделать. Если вы никогда не делали ничего подобного раньше, вы должны прочитать этот пост по настройке ActionBar. Он объясняет все, что вам нужно знать.

    <style name="Widget.ActionMode">
    <item name="android:background">?android:attr/actionModeBackground</item>
    <item name="android:backgroundSplit">?android:attr/actionModeSplitBackground</item>
    <item name="android:height">?android:attr/actionBarSize</item>
    <item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Title</item>
    <item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Subtitle</item>
    </style>

Ответ 2

Решение для моего приложения

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionModeBackground">@color/bg_action_bar</item>
</style>

Ответ 3

с помощью этого кода вы можете изменить цвет фона режима действия, а также изменить изображение DONE. Примечание: вы можете добавить свой текст и в свое изображение! в res/styles.xml:

<style name="AppTheme" parent="android:Theme.Holo">
<item name="android:actionModeBackground">@android:color/white</item>
<item name="android:actionModeCloseDrawable">@drawable/plus</item>

Ответ 4

Работал над моим проектом

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionModeStyle">@style/CustomActionModeStyle</item>
 </style>

Пользовательский стиль ActionMode

<style name="CustomActionModeStyle" parent="Base.Widget.AppCompat.ActionMode">
        <item name="background">@color/color_primary</item>
        <item name="titleTextStyle">@style/CustomeActionModeTextStyle</item>
</style>

Пользовательское название ActionMode

<style name="CustomeActionModeTextStyle" parent="TextAppearance.AppCompat.Widget.ActionMode.Title">
    <item name="android:textSize">16sp</item>
    <item name="android:textColor">@color/color_primaryText</item>
</style>

Ответ 5

Вы не можете настроить его таким образом, потому что атрибут actionModeStyle представлен на уровне API 14. Для уровней API от 11 до 13 вам не повезло.

Для уровня API 14 вы можете изменить стиль, установив в вашей теме андроид: actionModeStyle.

Ответ 6

Вот мой подход с Java-кодом:

private void customizeActionModeCloseButton(String title, int iconID) {
          int buttonId = Resources.getSystem().getIdentifier("action_mode_close_button", "id", "android");    
          View v = findViewById(buttonId);
          if (v == null) {
             buttonId = R.id.abs__action_mode_close_button;
             v = findViewById(buttonId);
          }
          if (v == null)
             return;
          LinearLayout ll = (LinearLayout) v;
          if (ll.getChildCount() > 1 && ll.getChildAt(1) != null) {
             //custom icon
             ImageView img = (ImageView) ll.getChildAt(0);
             img.setImageResource(iconID);
             //custom text
             TextView tv = (TextView) ll.getChildAt(1);
             tv.setText(title);
             tv.setTextColor(Color.WHITE);
          }
       }

Ответ 7

Обновлен ответ как для устройств pre, так и для post-Lollipop. Вы должны удалить префикс android: чтобы он работал на устройства Lollipop +, например:

styles.xml:

<style name="Widget.ActionMode">
    <item name="android:background">?android:attr/actionModeBackground</item>
    <item name="android:backgroundSplit">?android:attr/actionModeSplitBackground</item>
    <item name="android:height">?android:attr/actionBarSize</item>
    <item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Title</item>
    <item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Subtitle</item>
</style>

v21/styles.xml:

<style name="Widget.ActionMode">
    <item name="background">?android:attr/actionModeBackground</item>
    <item name="backgroundSplit">?android:attr/actionModeSplitBackground</item>
    <item name="height">?android:attr/actionBarSize</item>
    <item name="titleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Title</item>
    <item name="subtitleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Subtitle</item>
</style>

Я также рекомендую установить ваш стиль с помощью parent="@style/Widget.AppCompat.ActionMode", поэтому вы наследуете атрибуты, которые вам не нравятся.

Ответ 8

Здесь приложение AppCompat (т.е. использование startSupportActionMode) для временной настройки (настройки) изображения кнопки CAB. Временно, потому что желательно изменить его обратно, чтобы использовать его типичное изображение, чтобы при выборе текста в нем было удобно.

https://gist.github.com/coreform/36ed98f98668f2e90c6a