2016-10-27 13 views
0

を示していないことは、私が実装しようとしていますコードですが、役に立たないSearchView EDITTEXT私は、次の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) { 
    } 

の私も以下のコードを試してみましたが、でも、このdoesntのは、ように見えます働く

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

答えて

2

あなたのスタイルのテーマにはどのような色のアクセントがありますか?検索フィールドの背景は何ですか?

はXMLであなたのEDITTEXTに

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

私のアクセントの色は間違っていますが、問題は同じですが、アクセントの色をそのままにしておく必要があります。 –

+1

私のアクセントの色とsearchviewの背景は同じで、私のカーソルは見えませんでした。私はこのカスタムカーソルドロワブルを使用して、それが表示されました。 –

0

これを追加描画可能なカスタムを使用してみてください。 drawalble XMLを作成するよりも

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

: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> 

は、この情報がお役に立てば幸いです。

関連する問題