2016-10-27 3 views
0

Я не могу показать курсор на EditText из SearchView ниже код, который я пытаюсь реализовать, но не использоватьSearchView EditText не показывает курсор

searchView = (SearchView) menu.findItem(R.id.search).getActionView(); 
    final int textViewID = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null); 
    final EditText searchTextView = (EditText) searchView.findViewById(textViewID); 
    try { 
     Field mCursorDrawableRes = TextView.class.getDeclaredField("mCursorDrawableRes"); 
     mCursorDrawableRes.setAccessible(true); 
     mCursorDrawableRes.set(searchTextView, null); //This sets the cursor resource ID to 0 or @null which will make it visible on white background 
    } catch (Exception e) { 
    } 

Я даже попытался код ниже, но даже это не кажется работать.

EditText searchTextView = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); 
searchTextView.setFocusable(true); 
searchTextView.setCursorVisible(true); 

ответ

2

Каков ваш цветной акцент в теме стиля? и какова предыстория поля поиска?

Попробуйте использовать пользовательские Drawable

mCursorDrawableRes.set(searchTextView, R.drawable.cursor); 

cursor.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 
<solid android:color="@color/white" /> 
<size android:width="1dp" /> 
</shape> 
+0

bro мой цвет акцента был неправильным, но проблема все тот же, я должен держать цвет акцента в том, что это такое. –

+1

В моем случае мой цвет акцента и фон поиска были такими же, поэтому мой курсор не был виден. Я использовал этот настраиваемый курсор для рисования, и тогда он был виден. –

0

Добавьте это в EditText в XML.

<EditText 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textCursorDrawable="@drawable/color_cursor" 
    android:background="@drawable/R.drawable.selfbg"/> 

чем создать drawalble XML: color_cursor

<?xml version="1.0" encoding="utf-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <size android:width="2dp" /> 
    <solid android:color="#000000" /> 
</shape> 

Надежда это помогает.

Смежные вопросы