簡體   English   中英

Android文本選擇手柄具有白色背景(而不是透明)

[英]Android text selection handles have white background (instead of transparent)

以下屏幕截圖顯示了我的問題:

在此處輸入圖片說明

文本選擇手柄具有白色背景,並覆蓋其他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>

我用於屏幕截圖的手機運行帶有OxygenOS 3.2.7的Android 6.0.1

擺脫所有@null元素無效。

根據android文檔,主題適用於整個活動或應用程序布局中使用的視圖。 對於布局中的各個視圖,我們需要應用樣式。

參考: https : //developer.android.com/guide/topics/ui/themes.html

主題被用作活動或應用程序中所有視圖的通用樣式。

從主題<item name="android:popupBackground">????</item>刪除它

如果您在主主題中設置背景顏色,則可能會發生這種情況

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

如果您想為所有屏幕設置背景,請刪除window屬性為我解決此問題,而是設置windowBackground。

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

發生這種情況是因為您將背景設置為樣式的一部分,然后將android:theme="@style/TextInputLayout"為主題而不是樣式。

這使得該視圖的子視圖具有相同的行為,包括文本選擇處理程序。

將此行<item name="android:background">@color/grey_50</item>移出樣式。

請為視圖設置背景:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="YOUR_CUSTOM_COLOR" />
    <item android:state_selected="true" android:color="#80000000" />
    <item android:color="YOUR_CUSTOM_COLOR" />
    </selector>

試試這個可能對你有幫助

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Pressed State -->
    <item android:state_pressed="true"
        android:color="#FFFFFF" />  

    <!-- Focused State -->
    <item android:state_focused="true"
        android:color="#FFFFFF" /> <!-- use background color here -->

    <!-- Default State -->
    <item android:color="#000000" />
</selector>

將此屬性設置為您的編輯文本的背景

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM