2013-12-17 168 views
10

下面是我的android應用程序中的自定義編輯文本字段的屏幕截圖。輸入給定單詞時,當前正在輸入的單詞的文本以灰色突出顯示,並將文本顯示爲黑色,直至您按空格鍵,此時文本將按預期變成白色。有沒有辦法改變突出顯示的顏色和突出顯示的文字?如何更改editText字段上的突出顯示顏色

enter image description here

我的編輯文本的xml看起來像這樣

<EditText 
        android:id="@+id/searchField" 
        android:layout_width="160dp" 
        android:layout_height="44dp" 
        android:layout_alignParentLeft="true" 
        android:layout_centerVertical="true" 
        android:layout_marginLeft="60dp" 
        android:background="@null" 
        android:cursorVisible="true" 
        android:ems="10" 
        android:textColor="@color/white" 
        android:textColorHighlight ="#ff0000" 
        android:textCursorDrawable="@null" > 
       </EditText> 

整個佈局

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <!-- 
     As the main content view, the view below consumes the entire 
     space available using match_parent in both dimensions. 
    --> 

    <RelativeLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#fff" > 



     <fragment 
      android:id="@+id/map" 
      android:name="com.sapientnitro.inhouse.drop.components.DRPCustomMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 



     <ImageButton 
      android:id="@+id/btn_center_local" 
      android:layout_width="44dp" 
      android:layout_height="44dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="50dp" 
      android:layout_marginRight="15dp" 
      android:background="@drawable/btn_center_on_local_up" /> 

     <RelativeLayout 
      android:id="@+id/top_bar" 
      android:layout_width="match_parent" 
      android:layout_height="70dp" 
      android:background="#ddffffff" > 

      <ImageButton 
       android:id="@+id/btn_menu" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_alignParentBottom="true" 
       android:layout_marginBottom="10dp" 
       android:layout_marginRight="12dp" 
       android:layout_toLeftOf="@+id/btn_search" 
       android:background="@drawable/btn_menu_up" /> 


      <ImageButton 
       android:id="@+id/btn_create" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_alignParentBottom="true" 
       android:layout_marginBottom="10dp" 
       android:layout_marginLeft="12dp" 
       android:layout_toRightOf="@+id/btn_search" 
       android:background="@drawable/btn_create_up" /> 

      <ImageButton 
       android:id="@+id/btn_search" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_alignParentBottom="true" 
       android:layout_centerHorizontal="true" 
       android:layout_marginBottom="10dp" 
       android:background="@drawable/btn_search_up" /> 
     </RelativeLayout> 

     <LinearLayout 
      android:id="@+id/search" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#ddffffff" 
      android:orientation="vertical" > 

      <RelativeLayout 
       android:id="@+id/search_bar" 
       android:layout_width="match_parent" 
       android:layout_height="70dp" 
       android:background="#dd00cccb" > 

       <ImageView 
        android:id="@+id/searchBox" 
        android:layout_width="238dp" 
        android:layout_height="44dp" 
        android:layout_alignParentLeft="true" 
        android:layout_centerVertical="true" 
        android:layout_marginLeft="20dp" 
        android:src="@drawable/search_field" /> 

       <ImageView 
        android:id="@+id/clear" 
        android:layout_width="25dp" 
        android:layout_height="25dp" 
        android:layout_alignParentLeft="true" 
        android:layout_centerVertical="true" 
        android:layout_marginLeft="220dp" 
        android:src="@drawable/btn_clear_field" /> 

       <EditText 
        android:id="@+id/searchField" 
        android:layout_width="160dp" 
        android:layout_height="44dp" 
        android:layout_alignParentLeft="true" 
        android:layout_centerVertical="true" 
        android:layout_marginLeft="60dp" 
        android:background="@null" 
        android:cursorVisible="true" 
        android:ems="10" 
        android:textColor="@color/white" 
        android:textColorHighlight ="@color/white" 
        android:textCursorDrawable="@null" > 
       </EditText> 

       <TextView 
        android:id="@+id/cancelBTN" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_centerVertical="true" 
        android:layout_marginRight="16dp" 
        android:textColor="@color/white" 
        android:textSize="22dp" 
        android:text="@string/cancel" /> 

      </RelativeLayout> 

      <ScrollView 
       android:id="@+id/search_results_container" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:paddingTop="2dp" 
       android:scrollbars="none" > 

       <LinearLayout 
        android:id="@+id/search_results_content" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 

        <RelativeLayout 
         android:id="@+id/header_artists" 
         android:layout_width="match_parent" 
         android:layout_height="50dp" 
         android:background="#dd00cccb" /> 

        <HorizontalScrollView 
         android:id="@+id/results_artists" 
         android:layout_width="match_parent" 
         android:layout_height="150dp" /> 

        <RelativeLayout 
         android:id="@+id/header_followers" 
         android:layout_width="match_parent" 
         android:layout_height="50dp" 
         android:background="#dd00cccb" /> 

        <HorizontalScrollView 
         android:id="@+id/results_followers" 
         android:layout_width="match_parent" 
         android:layout_height="150dp" /> 

        <RelativeLayout 
         android:id="@+id/header_places" 
         android:layout_width="match_parent" 
         android:layout_height="50dp" 
         android:background="#dd00cccb" /> 

        <HorizontalScrollView 
         android:id="@+id/results_places" 
         android:layout_width="match_parent" 
         android:layout_height="150dp" /> 
       </LinearLayout> 
      </ScrollView> 
     </LinearLayout> 
    </RelativeLayout> 


    <ListView 
     android:id="@+id/left_drawer" 
     android:layout_width="255dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="#dd00cccb" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" 
     android:listSelector="@drawable/selector_transparent" /> 

    <ListView 
     android:id="@+id/right_drawer" 
     android:layout_width="255dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="end" 
     android:background="#dd00cccb" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" 
     android:listSelector="@drawable/selector_transparent" /> 

</android.support.v4.widget.DrawerLayout> 
+0

你怎麼樣式一樣,你的頭/ EditText上? – Tyler

+0

喜歡什麼?只需將背景設置爲空並在其下面放置圖像 – erik

+0

您是否找到解決方案?我有同樣的問題:( –

回答

0

你應該使用一個選擇器,更改文本colors`:

<?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="#FF0000" /> 
<!-- Focused State --> 
<item android:state_focused="true" 
    android:color="#FF0000" /> 
<!-- Default State --> 
<item android:color="#FFFFFF" /> 

然後設置你的文字顏色屬性@繪製/ selector_name

+0

不行,或者上面你的確切代碼,我的文字會在一個單詞完成後變爲紅色,但仍然像灰色一樣突出顯示,就像我上面的屏幕截圖一樣。 – erik

1

你應該在的EditText元素在您使用android:textColorHighlight佈局xml文件

5

簡單,只需使用TextHightLight屬性,XML模式

android:textColorHighlight="#ff0000" 

[圖像附在這裏是因爲對於一個評論如下]

,當我這樣做,這是它的外觀

enter image description here

+0

對不起,我應該已經發布了這個在我原來的問題,但我已經試過這個..它什麼也沒做! – erik

+0

它應該工作。實際上我有一個我在項目中使用過的定製類型。我只是試圖將你的確切代碼放入一個模擬應用程序中,它運行良好 – Kirk

+0

我想你正在自定義你的操作欄。你可以發佈我你的行動欄或定製的XML代碼,所以我可以弄清楚嗎? – Kirk

0

使用此代碼,可能是它的幫助你

android:textColorHighlight="your color code" 
14

我可以改變我的編輯文本的亮點通過添加此行到我的themes.xml文件中:

<item name="android:textColorHighlight">@color/m_highlight_blue</item> 
+0

是否可以更改可以拖動的選擇處理程序的顏色? –

+0

你知道如何以編程方式設置嗎? – Kuls

1

在材料設計中,您將得到預設風格上升的顏色,所以所有的文本選擇和其他主題將根據該顏色。您可以更改下列方式這個上升的顏色 -

轉到style.xml和更改下列顏色 -

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorAccent">@color/colorAccent</item> // Replace this color with your own choice 
    </style> 
2

如果你有改變標記筆手柄,那麼你應該改變

<item name="colorAccent">@color/edittext_handle_selection</item> 
<item name="android:textColorHighlight">@color/edittext_selection</item> 
2

在代碼:

et.setHighlightColor(ContextCompat.getColor(getContext(), R.color.highlight)); 
相關問題