Android EditText选定的文本范围指针得到奇怪的背景

Android EditText选定的文本范围指针得到奇怪的背景,android,android-view,android-theme,Android,Android View,Android Theme,编辑文本样式 <style name="MyEditTextStyle" parent="Widget.AppCompat.EditText"> <item name="android:textCursorDrawable">@null</item> <item name="android:textColor">@color/color_states_blackish</item>

编辑文本样式

    <style name="MyEditTextStyle" parent="Widget.AppCompat.EditText">
            <item name="android:textCursorDrawable">@null</item>
            <item name="android:textColor">@color/color_states_blackish</item>
            <item name="android:fontFamily">@font/sfd_medium</item>
            <item name="android:background">@drawable/edit_white_gray_x_normal_rounded</item>
            <item name="android:height">@dimen/general_view_height</item>
        </style>
我得到了以下与EditText背景相同的指针,我删除了它们ContextThemeWrapper,然后它正确显示,但我需要使用样式更改背景,为什么会发生这种情况?这是全屏对话框中的对话框吗?有解决办法吗?谢谢


看起来像bugg,选择器弹出窗口背景样式错误,不使用ContextThemeWrapper,样式正常显示,以编程方式设置背景

 final EditText editText = new EditText(getContext());
editText.setBackgroundResource(R.drawable.edit_white_gray_x_normal_rounded);
editText.setTextColor(ContextCompat.getColor(getContext(),R.color.color_states_blackish));

问题是主题中的
android:background
参数应用于
EditText
中的所有内容。对我来说,解决方案是从样式中删除该参数。

除了这里的其他答案之外,当我们在style.xml中的应用程序主题中设置背景时,也会出现这种情况。我发现的另一个解决方案是将
android:backgroundTint
替换为背景色的
android:backgroundTint
,并将
android:backgroundTintMode
设置为
multiple

将其放入样式中:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="android:backgroundTint">#FFFFFF</item>
    <item name="android:backgroundTintMode">multiply</item>
</style>

...
#FFFFFF
乘
或者在要更改其背景颜色的视图标记中:

<View
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:backgroundTint="#FFFFFF"
    android:backgroundTintMode="multiply" />

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="android:backgroundTint">#FFFFFF</item>
    <item name="android:backgroundTintMode">multiply</item>
</style>
<View
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:backgroundTint="#FFFFFF"
    android:backgroundTintMode="multiply" />