2016-02-01 3 views
4

андроид вид поиска курсор не виден, как же цвет панели

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="right|end"> 

     <android.support.v7.widget.SearchView 
      android:background="@null" 
      android:id="@+id/searchView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 
</android.support.v7.widget.Toolbar> 

мой colorAccent также colorPrimary, как изменить курсор цвет, я говорил другим quetions, но ничего не решить мою проблему

ответ

10

У вас есть два опции.

1). Вы можете использовать эти атрибуты в своем styles.xml для изменения цвета курсора.

<item name="colorControlNormal">@color/colorEditextDisabled</item> 
<item name="colorControlActivated">@color/colorEditextEnabled</item> // change this color to the required cursor color your need. 
<item name="colorControlHighlight">@color/colorEditextEnabled</item> 

2). Найдите EditText с вашего SearchView и установите для атрибута android:textCursorDrawable значение @null. Это приведет к тому, что в качестве цвета курсора будет android:textColor. Но так как вы не можете установить textCursorDrawable программно, вы должны использовать отражение в этом случае.

EditText etSearch= ((EditText) yourSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)); 
     try { 
      Field f = TextView.class.getDeclaredField("mCursorDrawableRes"); 
      f.setAccessible(true); 
      f.set(etSearch, null);// set textCursorDrawable to null 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     etSearch.setTextColor(ContextCompat.getColor(mContext, R.color.yourColor)); 

Надеюсь, любое из вышеприведенных решений будет работать для вас .. !!

+1

я не мог пройти мимо нуль для mCursorDrawableRes ... это ожидать значение INT –

3

Использование colorAccent в style.xml ...

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/orange</item> 
    <item name="colorPrimaryDark">@color/dark_orange</item> 
    <item name="colorAccent">@color/blue</item> 
</style> 
Смежные вопросы