我无法在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);
答案 0 :(得分:4)
你在风格主题中的色调是什么?搜索字段的背景是什么?
尝试使用自定义绘图
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>
答案 1 :(得分:1)
请删除代码行mCursorDrawableRes.set(searchTextView, null);
,因为如果在此行之后将可绘制对象设置为光标,它将无法正确设置。因此,请删除该行,并使用可自定义的可绘制光标添加此mCursorDrawableRes.set(searchTextView, R.drawable.cursor);
。
答案 2 :(得分:0)
将其添加到xml中的Edittext。
<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>
希望这有帮助。