【发布时间】:2015-07-22 10:52:55
【问题描述】:
我的操作栏中有一个TextView,如下所示:
当我长按关联的ListView 中的项目时,我已配置逻辑使其覆盖Toolbar 和ActionMode。这最终看起来如下所示:
这基本上是正确的,除了ActionMode中的TextView标题周围的恼人背景。
我尝试了很多事情,从更改我的styles.xml 文件中的Widget.ActionMode 样式,到实际将actionModeStyle 设置为特定样式。不过,似乎没有任何影响TextView。
我已经阅读了How to change ActionMode background color in Android,但似乎我所做的任何事情都不会影响这个背景。
旁注:如果有某种方法可以在 Android 设备上查看呈现的样式层次结构,那就太好了。层次结构查看器让我了解了大约 1/3 的路径,但它没有任何样式信息。有谁知道我可以用来调试这个问题的工具吗?
styles.xml(仅相关内容):
<style name="Material" parent="Theme.AppCompat.Light">
<item name="textHeaderMaxLines">@integer/text_header_max_lines</item>
<item name="trackAbstractMaxLines">@integer/track_abstract_max_lines</item>
<item name="activatableItemBackground">@drawable/activatable_item_background</item>
<!-- ActionMode Styles -->
<item name="android:windowActionModeOverlay">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeBackground">@color/app_green_dark</item>
</style>
<style name="Material.AppBar" parent="Theme.AppCompat.NoActionBar">
<item name="android:textColorPrimaryInverse">@android:color/white</item>
<item name="android:actionMenuTextColor">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
<item name="android:background">@color/app_green</item>
<item name="android:color">@android:color/white</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="Material.AppBar.ActionMode" parent="Widget.AppCompat.Light.ActionMode.Inverse">
<item name="android:background">@color/app_green_dark</item>
</style>
【问题讨论】:
-
我不确定我是否理解你的问题,如果你需要根据你的 editText 状态更改背景,你可以在你的 editText 背景中使用state 来做到这一点
-
@MuhannadFakhouri 这不是
EditText,而是ActionMode中的默认TextView。我在ActionMode对象上使用setTitle()设置文本本身。我想知道如何设置样式,因为我从其他 SO 帖子中收集到的当前解决方案似乎没有任何作用。
标签: android android-actionbar styles android-actionmode