2

搜索视图图标

我正在使用 android.support.v7.widget.SearchView,我需要让这个搜索图标消失。我有 SearchView 的自定义 ActionBar 布局:

        <android.support.v7.widget.SearchView
        android:id="@+id/search"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"/>

初始化 SearchView :

    searchView = (SearchView) findViewById(R.id.search);

    AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.search_src_text);
    searchText.setPadding(0, 0, 0, -padding);
    searchText.setHintTextColor(getResources().getColor(R.color.light_gray));

    View searchPlate = searchView.findViewById(R.id.search_plate);
    searchPlate.setBackgroundResource(R.drawable.searchview_textfield);

    View close = searchPlate.findViewById(R.id.search_close_btn);
    close.setBackgroundResource(R.drawable.selectable_background_orange);

我试图像这样自定义searchIcon:

ImageView icon = (ImageView)searchView.findViewById(android.support.v7.appcompat.R.id.search_mag_icon);

试图从这里设置所有内容Android SearchView 图标,但不是那个 ImageView。任何人都可以帮助我吗?

4

2 回答 2

1
public static void setSearchViewEditTextHint(Context context, SearchView searchView, int stringId){
    int searchMagIconId = context.getResources().getIdentifier("android:id/search_src_text", null, null);
    TextView textView = (TextView) searchView.findViewById(searchMagIconId);
    if (null != textView) {
        textView.setHint(stringId);
    }
}

函数调用:

setSearchViewEditTextHint(this, searchView, R.string.emptyString);
于 2016-11-07T09:19:57.253 回答
0

嘿,对不起,我参加聚会有点晚了。我不得不做类似的事情。我需要更改图标。这有点骇人听闻,但我认为这是最好的解决方案。查看支持库代码 AOSP 使用“Search_mag_icon”作为您要查找的图标。在您的代码中,您可以执行以下操作: int searchMagIcon = getResources().getIdentifier("search_mag_icon", "id", "android"); ImageView SearchHintIcon = (ImageView) searchView.findViewById(searchMagIcon); 这将保存该 ImageView。然后,您可以简单地更改它或将其设置为 null 在您的情况下。

编辑还有一个mSearch.getSearchView().setIconifiedByDefault()和一个mSearch.getSearchView().setIconified()你可以使用的。我发现您必须设置默认设置才能看到结果。

希望有帮助。:-)

于 2014-09-22T19:16:39.090 回答