And*_*i F 0 java search android themes
我正在尝试更改我的 SearchView 的光标颜色,我将其实例化并添加到我的操作栏中,如下所示:
MenuItem findItem = menu.findItem(R.id.menu_action_search);
searchView = (SearchView) findItem.getActionView();
Run Code Online (Sandbox Code Playgroud)
xml代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<item android:id="@+id/menu_action_search"
android:title="Search"
android:icon="@drawable/ic_search_white"
app:showAsAction="collapseActionView|always"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我的活动有一个这样的工具栏:
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
style="@style/EActionBar"
/>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
有没有办法覆盖现有样式并更改自动完成文本视图的光标颜色?
您可以执行以下步骤来更改光标颜色。
第 1 步:定义您自己放置在res/drawable
文件夹中的光标可绘制对象。
my_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="#0f0"/>
<size android:width="1dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
第 2 步:将此代码添加到onCreateOptionsMenu
.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem findItem = menu.findItem(R.id.menu_action_search);
searchView = (SearchView) findItem.getActionView();
// Add this code
SearchView.SearchAutoComplete searchTextView = searchView.findViewById(R.id.search_src_text);
try {
Field field = TextView.class.getDeclaredField("mCursorDrawableRes");
field.setAccessible(true);
field.set(searchTextView, R.drawable.my_cursor);
} catch (Exception e) {
// Ignore exception
}
// Your logic code here
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1227 次 |
最近记录: |