【问题标题】:Android AlertDialog text selection icon colorAndroid AlertDialog 文本选择图标颜色
【发布时间】:2015-01-22 01:27:25
【问题描述】:

我在选择 AlertDialog 内的 EditText 控件内的文本时遇到问题。

当我选择文本时,文本选择工具栏会显示在屏幕顶部。问题是工具栏背景是白色的,工具栏中显示的图标也是白色的。因此,这些图标是不可见的(但如果您触摸它们,它们就会起作用)。这是在 Android 4.2.2 (API 17) 上。

这是我用来创建包含 EditText 的 AlertDialog 的代码的 sn-p。它位于我的测试项目活动的onCreate 方法中。

EditText et = new EditText(this);
et.setText("Test");
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setView(et).setPositiveButton("Ok", null).setNegativeButton("Cancel", null);
b.create().show();

选择文本时,文本选择工具栏的外观如下:

如何更改工具栏和/或图标的颜色以使其可见?

【问题讨论】:

标签: android


【解决方案1】:

我认为你可以使用:

<item name="actionModeBackground">@drawable/background</item>
<item name="android:actionModeBackground">@drawable/background</item>

在您的主题中。我不确定您是否可以指向颜色而不是可绘制对象。一个快速的解决方法是定义一个可绘制的形状。更准确地说,您可以使用drawable/background.xml 之类的:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <solid
        android:color="@color/color" />
</shape>

【讨论】:

  • 我尝试在我的 colors.xml 文件中定义一种颜色,并在我的主题中添加了&lt;item name="actionModeBackground"&gt;@color/myredcolor&lt;/item&gt;,但它没有任何效果。我仍然得到白色图像。我的主题的父母是Theme.AppCompat.Light.DarkActionBar
  • 也许你也应该使用android:actionModeBackground。另外,我不确定这适用于颜色。尝试定义一个可绘制的形状。
  • 我尝试使用可绘制对象而不是颜色,并尝试将android: 放在actionModeBackground 前面,但它仍然不起作用。我用我的测试应用程序的文件制作了一个 pastebin:http://pastebin.com/EzfsrDjq。我正在运行 JellyBean API17 模拟器。
  • &lt;item name="android:actionModeBackground"&gt;@drawable/background&lt;/item&gt; 为我解决了问题;我不知道为什么它被否决了。
猜你喜欢
  • 2013-12-10
  • 2021-08-08
  • 2012-12-14
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
相关资源
最近更新 更多