上下文操作栏样式

我在“上下文操作”栏(CAB)上查找样式信息。 我只是需要改变文字的颜色

上下文操作栏的结果

正如你可以从上面看到的,这是使用标准的Theme.Holo.Light.DarkActionBar主题,所以我只需要设置文本颜色为白色!

任何人都可以指向正确的方向吗?

要在上下文操作栏中更改文本的颜色/等等:

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与您所需的颜色/大小/风格等

事实上,几乎所有在上下文操作栏中的内容都可以被设置。 唯一的问题是,search“上下文”这个词是无用的。 相关的样式function都被称为“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> 

您可以轻松设置自己的文本编辑剪切/粘贴/复制/select所有图标,酒吧背景和图标背景,当您按图标(上面的bar_selector)时,它们会改变颜色。 图标是ImageView,而不是button,编辑ID(和可压缩的背景)连接到ImageView的父级(每个视图一个父级),这是“内部”types。

从来没有清楚什么样式在什么地方 – 我发现selectableItemBackground在平台Themes.xml中,并复制和修改指向的drawable。

我发表了一个评论,我自己的问题,这实际上是我使用的Android版本中的错误(可能是4.0的早期版本)

这是描述的错误: http : //code.google.com/p/android/issues/detail?id = 26008

如果您手动启动上下文操作模式,则可以在启动之前使用新主题调用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)中input它,并将其input到通用(非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>