Android 文本选择句柄有白色背景(而不是透明的)

标签 android android-edittext android-theme android-styles

下面的截图显示了我的问题:

enter image description here

文本选择 handle 具有白色背景并覆盖其他 UI 元素。如何使背景透明?

或者更好的问题实际上是:我可以做些什么来使背景变白?

这是应用于 EditText 的样式:

<style name="TextInputLayout" parent="AppTheme">
    <item name="android:background">@color/grey_50</item>
    <item name="colorControlNormal">@color/grey_500</item>
    <item name="colorControlActivated">@color/grey_900</item>
    <item name="colorControlHighlight">@color/grey_900</item>
    <item name="backgroundTint">@color/grey_900</item>
    <item name="colorAccent">@color/grey_900</item>
    <item name="colorPrimary">@color/grey_900</item>
    <item name="android:textCursorDrawable">@null</item>
</style>

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/grey_500</item>
    <item name="colorPrimaryDark">@color/grey_500</item>
    <item name="colorAccent">@color/grey_700</item>
    <item name="android:colorBackground">@color/grey_50</item>
    <item name="android:colorForeground">@color/grey_900</item>
    <item name="android:textColorPrimary">@color/grey_900</item>
    <item name="android:textColorPrimaryInverse">@color/grey_50</item>
    <item name="android:textColorSecondary">@color/grey_900</item>
    <item name="android:textColorSecondaryInverse">@color/grey_50</item>
    <item name="android:windowBackground">@color/grey_50</item>
    <item name="android:textColorHint">@color/grey_700</item>
    <item name="android:colorActivatedHighlight">@color/grey_900</item>
    <item name="colorControlNormal">@color/grey_700</item>
    <item name="colorControlActivated">@color/grey_900</item>
    <item name="colorControlHighlight">@color/grey_900</item>
    <item name="android:textColorHighlight">@color/grey_500</item>
    <item name="android:colorControlNormal" tools:targetApi="lollipop">@color/grey_700</item>
    <item name="android:colorControlActivated" tools:targetApi="lollipop">@color/grey_900</item>
    <item name="android:colorControlHighlight" tools:targetApi="lollipop">@color/grey_900</item>
    <item name="android:stateListAnimator" tools:targetApi="lollipop">@null</item>
    <item name="android:statusBarColor" tools:targetApi="lollipop">@color/grey_900</item>
    <item name="android:navigationBarColor" tools:targetApi="lollipop">@color/grey_900</item>
</style>

编辑#1

EditText 的 XML(请注意,我看到 EditTextAppCompatEditText 的行为相同):

<android.support.design.widget.TextInputLayout
    android:id="@+id/input_layout_home_autocomplete"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="@dimen/activity_horizontal_margin_small"
    android:layout_marginTop="@dimen/activity_horizontal_margin_small"
    android:layout_weight="3.5"
    android:background="@null"
    android:hint="@string/location"
    android:padding="@dimen/activity_vertical_margin_medium"
    android:theme="@style/TextInputLayout"
    app:hintAnimationEnabled="true"
    app:hintEnabled="true"
    app:hintTextAppearance="@style/TextAppearance.TextInputLayout">

    <AutoCompleteTextView
        android:id="@+id/user_home_autocomplete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3.5"
        android:dropDownWidth="match_parent"
        android:inputType="textAutoComplete"
        android:maxLines="1"
        android:paddingTop="@dimen/activity_horizontal_margin_small" />

</android.support.design.widget.TextInputLayout>

我用于截图的手机运行 Android 6.0.1 和 OxygenOS 3.2.7

摆脱所有 @null 元素没有用。

最佳答案

如果您在主主题中设置背景颜色,可能会发生这种情况,如下所示

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="android:background">@color/white</item>
    ...
 </style>

删除此属性可以为我解决此问题,如果您想为所有屏幕设置背景,请改为设置 windowBackground。

<item name="android:windowBackground">@color/white</item>

关于Android 文本选择句柄有白色背景(而不是透明的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795031/

相关文章:

javascript - 用不那么难看的东西替换 WebView 中的 "Web page not available"错误? (安卓)

android - Edittext 导致 stackoverflow

android-如何使按钮背景不透明

android - 将我的项目 API 更新为 21 并将 AppCompat 更新为 21.02 后找不到资源

android - 基于计划的 Quickblox 定价困惑

java - 更新 JNI 中的 jint 变量

android - 为 android 编译 C 库,但未找到符号

java - 将 setText 用于 EditText 框,onClick 认为它为空

java - 如果 EditText 为空,则阻止用户关闭警报对话框

android - 带有 Theme.Sherlock.Light 的 AlertDialog 上深色背景上的深色文本