我试图在搜索视图中隐藏图标:
我正在使用此代码:
((ImageView) searchView.findViewById(searchView.getContext().getResources()
.getIdentifier("android:id/search_mag_icon", null, null)))
.setLayoutParams(new LinearLayout.LayoutParams(0, 0));
我无法弄明白为什么它不起作用,因为我使用相同的代码来隐藏关闭图标并且它工作正常:
((ImageView) searchView.findViewById(searchView.getContext().getResources()
.getIdentifier("android:id/search_close_btn", null, null)))
.setLayoutParams(new LinearLayout.LayoutParams(0, 0));
搜索图标的标识符是否正常?
答案 0 :(得分:0)
可能(可能)此图标无效(重绘)有时会设置新LayoutParams
(覆盖您的图标)。你应该检查(看)Android源代码,但有更简单的解决方案尝试 - 而不是设置新的params可能尝试设置透明drawable,可能使用new ColorDrawable(Color.TRANSPARENT);
如果此标识符有误,则应获取NullPointerException
另外:对于检查View
参数或(和)ID,您可以使用Hierarchy Viewer
,它会转储设备的整个屏幕(模拟器)。更多HERE(以及Google中)
(很多括号)