如何更改剪切/复制/粘贴弹出菜单的文本颜色

时间:2017-08-18 23:23:09

标签: android colors app-themes

我的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>

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

这给出了以下

enter image description here

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

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

TIA, 凯文

7 个答案:

答案 0 :(得分:0)

您可以按照样式名称更改它们:

<?php echo get_current_user(); ?>
<?php echo getenv("username"); ?>

此外,您可以使用xml布局中的<item name="colorAccent">@color/twoCuteSelectionHandlersColor</item> <item name="android:textColorHighlight">@color/selectionColor</item> 属性或以编程方式直接为太平洋EditText设置高亮颜色:

android:textColorHighlight

对于上下文菜单,您需要创建自己的上下文菜单。检查this question有关如何禁用默认上下文菜单和实现自定义菜单的信息。

答案 1 :(得分:0)

这不是一个真正的答案。黑色黑色编辑菜单仅从AlertDialog中包含的EditText生成。片段中的相同代码提供黑白色。

所以我&#34;解决了#34;我的问题是将AlertDialog转换为片段。

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

答案 2 :(得分:0)

警报对话框和弹出菜单通常以@ColorAccent的颜色为背景。因此,请尝试更改colorAccent或仅使用您想要的规格对自定义xml进行充气。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我通过设置Alertdialog样式的不透明背景色来修复了该问题

在styles.xml

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

在colors.xml中

<color name="black_overlay">#66000000</color>

答案 5 :(得分:0)

我认为这是比user3247782更好的解决方案,

<style name="CustomAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    ...
    <item name="android:popupBackground">@android:color/transparent</item>
</style>

答案 6 :(得分:0)

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

然后使用样式即可将背景设置为透明。

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

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