如何删除在SearchView小部件中显示为提示的默认搜索图标(不在操作栏中)?通过样式我可以更改图标,但我找不到删除它的方法?
答案 0 :(得分:8)
工作......
ImageView searchViewIcon = (ImageView)searchView.findViewById(android.support.v7.appcompat.R.id.search_mag_icon);
ViewGroup linearLayoutSearchView =(ViewGroup) searchViewIcon.getParent();
linearLayoutSearchView.removeView(searchViewIcon);
答案 1 :(得分:3)
截至目前你应该使用
int i = 1;
PROCESS_YIELD();
printf("i=%d\n", i); // <- prints garbage
答案 2 :(得分:3)
对我而言,它只能起作用:
ImageView magImage = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_mag_icon);
magImage.setVisibility(View.GONE);
magImage.setImageDrawable(null);
@sector11's几乎得到了它,但你仍然需要添加行magImage.setImageDrawable(null)
,因为在Github中查看SearchView.java
,特别是方法updateViewsVisibility,你可以看到它不断更新其可见性
从GitHub中提取
if (mCollapsedIcon.getDrawable() == null || mIconifiedByDefault) {
iconVisibility = GONE;
} else {
iconVisibility = VISIBLE;
}
mCollapsedIcon.setVisibility(iconVisibility);
答案 3 :(得分:2)
你可以覆盖它:
int searchImgId = context.getResources().getIdentifier("android:id/search_mag_icon", null, null);
ImageView searchImage = (ImageView) searchView.findViewById(searchImgId);
searchImage.setVisibility(View.GONE);
如果您的搜索视图位于布局中,请使用带有关闭按钮的EditText:
如果您想创建自己的框架布局,请添加文本更改侦听器以管理关闭或取消按钮的可见性。
关于UI中搜索视图的讨论很少:
How to create EditText with cross(x) button at end of it?
How to place button inside of edit text
如果要显示搜索列表,请使用AutoCompleteTextView而不是EditText。
您可以从以下链接阅读教程:
答案 4 :(得分:2)
请在您的代码中设置此SearchView
android:paddingLeft="-16dp" // this line is remove the space of icon
android:paddingStart="-16dp" // // this line is remove the space of icon
android:searchIcon="@null" // this line to remove the search icon
android:closeIcon="@null" // this line to remove the close icon
<SearchView
android:queryBackground="@android:color/transparent"
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="-16dp"
android:paddingStart="-16dp"
android:layout_gravity="center"
android:gravity="center"
android:background="@null"
android:searchIcon="@null"
android:closeIcon="@null"
android:theme="@style/BaseTheme"
android:iconifiedByDefault="false"
android:queryHint="@string/hint">
<requestFocus />
</SearchView>
答案 5 :(得分:1)
对于androidx SearchView,只需使用app:searchIcon="@null"
答案 6 :(得分:0)
试试这个:
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView" >
<item name="searchHintIcon">@null</item>
<!-- Background for the search query section (e.g. EditText) -->
<item name="queryBackground">@color/transparent</item>
</style>
永远不要使用直接的android ids来查找视图,因为将来如果id发生变化,您的代码将无法正常工作。始终使用标准方法来解决问题而不是解决方法。 有关详细信息,请参阅此link。