如何在Android中更改CAB样式?

时间:2016-05-22 16:54:41

标签: android contextual-action-bar

我正在尝试使用此代码段更改Contextual Action Bar样式

<style name="AppTheme.Reader" parent="AppTheme">
    <item name="android:actionModeStyle">@style/AppTheme.ActionMode</item>
    <item name="actionModeStyle">@style/AppTheme.ActionMode</item>
</style>

<style name="AppTheme.ActionMode" parent="Widget.AppCompat.ActionMode">
    <item name="background">@color/white</item>
    <item name="titleTextStyle">@style/AppTheme.ActionMode.Title</item>
    <item name="subtitleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionMode.Subtitle</item>
</style>

在正确的活动中设置主题

android:theme="@style/AppTheme.Reader"

然后我用了

TextView.setCustomSelectionActionModeCallback()

要拦截所选文本,但是当它出现时,它具有默认样式,并且似乎我的自定义尚未应用。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

尝试使用最新的支持库(截至目前:v23.4.0)。取决于你的父母&#34; AppTheme&#34;继承,它可能会或可能不会工作,但如果你试图继承&#34; AppCompat&#34;主题以下应该可以工作,一旦你看到白色背景,你可以填写其余的属性:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="actionModeStyle">@style/ActionModeTheme</item>
</style>

<style name="ActionModeTheme" parent="@style/Widget.AppCompat.ActionMode">
    <item name="background">@color/white</item>
</style>

当然假设<color name="white">#fff</color>

中定义了colors.xml