在搜索视图中自定义关闭图标

问题描述 投票:4回答:2

如何更改searchview的closeIcon的资源。使用Holo.light作为父项。我已经尝试了很多东西!这个名字不在Holo上!!

<item name="android:searchViewCloseIcon">@drawable/ic_search_close</item>
android android-actionbar searchview
2个回答
9
投票

如果您使用的是AppCompat v21 compile 'com.android.support:appcompat-v7:22.2.0',则可以使用此:

values/themes.xml:
<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>

在这里找到:http://android-developers.blogspot.nl/2014/10/appcompat-v21-material-design-for-pre.html

如果您希望保持一致,我建议您使用此库。

如果您真的不想使用此库,则可以使用它来更改关闭图标:

int closeButtonId = getResources().getIdentifier("android:id/search_close_btn", null, null);  
ImageView closeButtonImage = (ImageView) searchView.findViewById(closeButtonId);  
closeButtonImage.setImageResource(R.drawable.ic_action_cancel);  

从这里得到它:http://nlopez.io/how-to-style-the-actionbar-searchview-programmatically/


0
投票

这对我有用:

private void changeCloseIcon(SearchView searchView) {    
    ImageView closeButtonImage = searchView.findViewById(R.id.search_close_btn);
    closeButtonImage.setImageResource(R.drawable.icon_toolbar_close);
}

 @Override
 public boolean onCreateOptionsMenu(final Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) searchItem.getActionView();
    changeCloseIcon(searchView);      
    return true;
}
© www.soinside.com 2019 - 2024. All rights reserved.