アクションモードの閉じるボタンのレイアウトは、テキストビューのための色の属性を提供していないので、カスタムテーマでこの色を設定する方法はありません。私が見つけただけではなくAYは私の派生ActionMode
クラスのonPrepareActionMode()
方法でテキストの色を上書きすることでした:
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... none) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
return null;
}
@Override
protected void onPostExecute(Void none) {
if (activity != null) {
LinearLayout layout = (LinearLayout) activity
.findViewById(R.id.abs__action_mode_close_button);
if (layout == null) {
int id = Resources.getSystem().getIdentifier(
"action_mode_close_button", "id", "android");
layout = (LinearLayout) activity.findViewById(id);
}
if (layout != null && layout.getChildCount() > 1) {
TextView label = (TextView) layout.getChildAt(1);
if (label != null) label.setTextColor(Color.RED);
}
}
}
}.execute();
return false;
}
は、2つのデバイスの前と後のAndroid 4.0で働きました。
actionMenuTextColorの問題は、「通常の」アクションバー項目の色も変更されることです。 – sergio91pt
変更する正しい項目が 'abs_action_mode_close_item.xml'であり、' abs_action_menu_item_layout.xml'ではないので、これは機能しません。問題は、 'abs_action_mode_close_item.xml'はテキストの色を提供しません:(あなたは簡単にABS用に修正することができますが、それは4.0以前のAndroidsでしか動作しません... – Trinimon