我使用android.support.v7.widget.SearchView,我需要将此搜索图标设为GONE。 我有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 Icon的所有内容,但它不是ImageView。 任何人都可以帮助我吗?
答案 0 :(得分:0)
int searchMagIcon = getResources().getIdentifier("search_mag_icon", "id", "android");
ImageView SearchHintIcon = (ImageView) searchView.findViewById(searchMagIcon);
这将保存ImageView。然后你可以简单地改变它或在你的情况下将其设置为null。
编辑您还可以使用mSearch.getSearchView().setIconifiedByDefault()
和mSearch.getSearchView().setIconified()
。我发现你必须设置默认值来查看结果。
希望有所帮助。 : - )
答案 1 :(得分:0)
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);