gpt4 book ai didi

android - 如何更改搜索 View 图标颜色?

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:45 25 4
gpt4 key购买 nike

我知道这里已经有很多关于这个问题的答案,如果我没有尝试过我在这里看到的所有内容,我就不会创建另一个线程。无论如何,问题很简单。我不介意解决方案是来自 XML 样式还是 Java 代码(欢迎两种解决方案)。我将展示我尝试解决的所有问题(无论如何大部分)。

首先,searview 图标似乎无法通过代码更改,因为我无法更改它的任何内容。我的搜索 View 在 menu.xml 中声明为 this

<item android:id="@+id/icon_search"
android:title="Searchador"
android:icon="@drawable/ic_search_black_24dp" <!-- icon not used by searchview anyway -->
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView"
/>

在我的onCreateOptionsMenu里面我有这个

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchMenuItem = menu.findItem(R.id.icon_search);
searchView = (SearchView) searchMenuItem.getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setSubmitButtonEnabled(false);
searchView.setOnQueryTextListener(this);
MenuTint.colorIcons(this, menu, Color.BLUE);
return true;

MenuTint.colorIcons(this, menu, Color.BLUE); 我从我找到的一个特殊类中得到 here它基本上改变了我所有图标的颜色,不幸的是不适用于搜索 View 图标。

然后我找到了一些建议使用这样的样式的答案

<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<!-- changing my icon, its color and stuff.. -->
<item name="searchIcon">@drawable/ic_search</item></style>

但我遇到了 No resource found that matches the given name 'Widget.AppCompat.SearchView'. 错误。

然后我发现我应该添加 android-support-app-compat 项目库,而不仅仅是 .jar。它没有用。我的意思是,导入有效,但错误不断出现。然后,我发现某处我应该将 project.properties 从 target=android-19 更改为 21(或更高),但它没有解决“找不到资源”错误。

所以我对这个需要更改搜索 View 颜色的简单细节非常困惑。

此外,这不是完全相同的问题,但我相信它可能会以相同的方式解决,所以我将在此处包括:我想更改图标之间的距离。有人提出了这个解决方案

<style name="ActionButtonStyle" parent="AppBaseTheme">
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
</style>

但我最终得到了 this

如您所见,此方法仅适用于我的自定义图标,但不适用于搜索 View 图标,也不适用于菜单溢出图标。我想平均更改所有图标之间的距离。

最佳答案

对于android.x

@Override
public boolean onCreateOptionsMenu(Menu menu) {
...

ImageView searchIcon=
searchView.findViewById(androidx.appcompat.R.id.search_mag_icon);

// To change color of close button, use:
// ImageView searchCloseIcon = (ImageView)searchView
// .findViewById(androidx.appcompat.R.id.search_close_btn);

searchIcon.setColorFilter(getResources().getColor(R.color.colorPrimary),
android.graphics.PorterDuff.Mode.SRC_IN);

...

return true;

}

关于android - 如何更改搜索 View 图标颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44855532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com