コンテキストアクションバー(CAB)でスタイル情報を探しています。実際、テキストの色を変更する必要があります。
上記からわかるように、これは標準のTheme.Holo.Light.DarkActionBarテーマを使用しているので、テキストの色を白に設定する必要があります。
誰かが私を正しい方向に向けることができますか?
私は自分の質問にコメントを投稿しましたが、これは実際には私が使用していたバージョンのAndroid(おそらく4.0の初期バージョン)のバグです)
これは説明されているバグです: http://code.google.com/p/Android/issues/detail?id=26008
コンテキストアクションバーのテキストの色などを変更するには:
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
//mode.setTitle("Contextual Action Bar"); (replace this call)
TextView tv= (TextView)getLayoutInflater().inflate(R.layout.contextual_title, null);
tv.setText("Contextual Action Bar");
mode.setCustomView(tv);
ここで、layout/contextual_title.xmlには、希望の色/サイズ/スタイルなどの単一のTextViewが含まれています
実際、コンテキストアクションバーのほとんどすべてをスタイル設定できます。唯一の問題は、「コンテキスト」という単語を検索しても役に立たないことです。関連するスタイリング機能はすべて「actionMode ...」と呼ばれます。これが私が使用したものです(私のテーマで定義されています)。
<item name="Android:actionModeCloseDrawable">@drawable/check</item>
<item name="Android:actionModeCutDrawable">@drawable/ic_menu_cut_holo_dark</item>
<item name="Android:actionModeCopyDrawable">@drawable/ic_menu_copy_holo_dark</item>
<item name="Android:actionModePasteDrawable">@drawable/ic_menu_paste_holo_dark</item>
<item name="Android:actionModeSelectAllDrawable">@drawable/ic_menu_selectall_holo_dark</item>
<item name="Android:actionModeBackground">@drawable/contextual</item>
<item name="Android:actionModeCloseButtonStyle">@style/MyCloseButton</item>
<!-- these change the press backgrounds for the Vanilla actionBar and for search -->
<item name="Android:windowContentOverlay">@null</item>
<item name="Android:selectableItemBackground">@drawable/bar_selector</item>
<item name="Android:actionBarItemBackground">@drawable/bar_selector</item>
<!-- these were defined in platform/.../data/res/values/... but Eclipse didn't recognize them -->
<!--? item name="Android:actionModeShareDrawable">@drawable/icon</item -->
<!--? item name="Android:actionModeFindDrawable">@drawable/icon</item -->
<!--? item name="Android:actionModeWebSearchDrawable">@drawable/icon</item -->
<!-- item name="Android:actionModeBackground">@drawable/red</item -->
<!-- and finally -->
<style name="MyCloseButton" parent="Android:style/Widget.ActionButton.CloseMode">
<item name="Android:background">@drawable/bar_selector</item>
</style>
独自のテキスト編集カット/貼り付け/コピー/選択アイコン、バーの背景、およびアイコンを押すと色が変わるアイコンの背景(上記のbar_selector)を簡単に設定できます。アイコンはボタンではなくImageViewであり、編集ID(およびプレス可能な背景)は、「内部」タイプであるImageViewの親(ビューごとに1つの親)にアタッチされます。
スタイルのどこに何が入るのかは決して明確ではありません。selectableItemBackgroundがプラットフォームThemes.xmlのどこにあるかを見つけ、ポイントされたドローアブルをコピーして変更しました。
コンテキストアクションモードを手動で開始する場合は、起動する前に新しいテーマでsetTheme()を呼び出すことができます(黒地に黒のテキストの問題を回避しようとしている場合は、Theme.AppCompat.Light.DarkActionBarなど)。アクティビティのコンテンツビューをすでに設定している場合、これは現在のアクティビティのテーマには影響しません。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity_layout);
// these lines can occur anywhere so long as you've already
// called "setContentView()" on the activity. The theme
// you set here will apply to the action mode, but not to
// the activity.
setTheme(R.style.Theme_AppCompat_Light_DarkActionBar);
startSupportActionMode(myActionModeCallback);
}
現在は機能していますが、values/styles.xml(values-v#/ styles.xmlではなく)に入力して、一般的な(API固有ではないタグ)に入力する必要があります。
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="Android:actionModeCloseDrawable">@drawable/ic_launcher</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>