5

我的styles.xml 中有以下内容

<style name="dialog_style" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorAccent">#ffaaaa00</item>
    <item name="android:background">#ff444400</item>
    <item name="android:textColorPrimary">#ffa25600</item>
</style>

(可怕的颜色仅供测试!)

这给出了以下

在此处输入图像描述

我想要的是深色/黑色背景,但是当我这样做时,文本是不可读的。

问:如何更改“剪切”、“复制”...的文字颜色?

蒂亚,凯文

4

7 回答 7

1

我认为这比 user3247782 的解决方案好一点,

<style name="CustomAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    ...
    <item name="android:popupBackground">@android:color/transparent</item>
</style>
于 2019-03-10T12:50:26.750 回答
0

如果使用MaterialAlertDialogBuilder,则可以通过colorSurface属性定义背景颜色。

然后在样式中,您可以将背景设置为透明。

android:background="@android:color/transparent" 

对话框将使用其中定义的一个colorSurface,“复制/粘贴”将使用默认系统颜色(例如白色)。

于 2020-08-20T11:39:06.317 回答
0

我通过在 alertdialog 的样式中设置不透明度的背景颜色来修复它

在styles.xml

<style name="AppCompatAlertDialogStyle">
...
<item name="android:background">@color/black_overlay</item>
...
</style>

在颜色.xml

<color name="black_overlay">#66000000</color>
于 2019-01-09T15:53:26.113 回答
0

只需将其父级从 Theme.Material.Light 更改为 Theme.Material 即可。它会使文本变白,那里。

于 2017-12-29T21:36:13.797 回答
0

警报对话框和弹出菜单一般以@ColorAccent 的颜色为背景。因此,请尝试更改 colorAccent 或仅使用您想要的规范来扩展自定义 xml。

于 2017-08-24T04:35:38.557 回答
0

您可以通过以下样式名称更改它们:

<item name="colorAccent">@color/twoCuteSelectionHandlersColor</item>
<item name="android:textColorHighlight">@color/selectionColor</item>

您还可以EditText使用android:textColorHighlightxml 布局中的属性或以编程方式直接为太平洋设置突出显示颜色:

et.setHighlightColor(color);

对于上下文菜单,您需要创建自己的上下文菜单。检查这个问题,了解如何禁用默认上下文菜单和实现自定义菜单。

于 2017-08-19T04:09:26.653 回答
0

这不是一个真正的答案。black-on-black 编辑菜单仅由 AlertDialog 中包含的 EditText 生成。Fragment 中的相同代码给出了黑底白字。

所以我通过将 AlertDialog 转换为 Fragment 来“解决”我的问题。

然而,最初的问题仍然没有答案。

于 2017-08-24T04:16:41.713 回答