java - 如何改变SearchView的样式?

标签 java android searchview

我必须在我的应用程序中实现 SearchView

XML声明如下:

<SearchView
     android:id="@+id/searchView"
     style="@style/SearchViewStyle"
     android:layout_width="wrap_content"
     android:layout_height="20dp"
     android:layout_alignParentEnd="true"
     android:layout_marginTop="5dp"
     android:layout_marginBottom="5dp"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintTop_toTopOf="parent" />

样式是:

<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
 <item name="android:searchIcon">@drawable/ico_search</item>
 <item name="android:queryBackground">@android:color/transparent</item>

最后在 Activity 中:

SearchView mSearchView = findViewById(R.id.searchView);
mSearchView.setIconifiedByDefault(true);
mSearchView.setSubmitButtonEnabled(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setQueryHint("Search here");

我不明白如何更改提示的文本颜色和“编辑文本”的背景,我在其中输入用于研究的关键字。

我刚刚尝试了什么?

在 style.xml 中添加此行

<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/white</item>

或将其添加到我的 Activity 中

AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(color.black));
searchText.setTextColor(getResources().getColor(color.black));

这些解决方案不起作用。

最佳答案

您可以像这样设置 SearchView 的样式:

<style name="Theme.MyTheme" parent="Theme.AppCompat">
   <item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
   <!-- Background for the search query section (e.g. EditText) -->
   <item name="queryBackground">...</item>
   <!-- Background for the actions section (e.g. voice, submit) -->
   <item name="submitBackground">...</item>
   <!-- Close button icon -->
   <item name="closeIcon">...</item>
   <!-- Search button icon -->
   <item name="searchIcon">...</item>
   <!-- Go/commit button icon -->
   <item name="goIcon">...</item>
   <!-- Voice search button icon -->
   <item name="voiceIcon">...</item>
   <!-- Commit icon shown in the query suggestion row -->
   <item name="commitIcon">...</item>
   <!-- Layout for query suggestion rows -->
   <item name="suggestionRowLayout">...</item>
</style>

这里是详细信息https://philio.me/styling-the-searchview-with-appcompat-v21/

关于java - 如何改变SearchView的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239680/

相关文章:

java - 接口(interface) javax.transaction.Transaction 的实现是否需要线程安全?

java - 从 Java 生成的进程的核心转储

android - OpenVpn android 应用程序出错

android - 搜索 View 边框颜色更改和搜索提示图标更改

android - 使用 Sherlock ActionBar SearchView setOnKeyListener 进行搜索

java - Mockito 不允许 Matchers.any() 与 Integer.class

微调器的android屏幕方向处理

Android Studio 无法安装应用程序 : INSTALL_FAILED_VERIFICATION_FAILURE

安卓 4.3 : Not focus searchView not show hint

java - Spring Boot测试java.lang.IllegalStateException : Failed to load ApplicationContext and missing bean