我在AppCompat Actionbar中包含了一个SearchView,但它的图标总是有阴影。
对于其他图标,我使用的是the Android Downloads page中没有阴影的图标,实际上我也尝试将图标指定给SearchView
到android:icon="@drawable/ic_action_search"
,但这不是不要改变图标。
我的研究表明,实际上ab_ic_search.png
使用了android-support-v7-appcompat.jar
而我的android:icon="@drawable/ic_action_search"
被忽略了。
我尝试了各种方法,例如尝试替换onPrepareOptionsMenu
中的图像(通过尝试查找ImageView
)或通过SearchView
的自定义子类,但无济于事。
任何想法如何解决?基本上我只想让我的图标统一,我是否必须为所有其他图标添加阴影?可能无论如何我都无法为那些“三个点”添加阴影?
答案 0 :(得分:8)
感谢this blogpost,我设法构建了我的解决方案:
public boolean onCreateOptionsMenu(Menu menu) {
// the search view is in the mymenu.xml
inflater.inflate(R.menu.mymenu, menu);
// now that it is inflated we can get the item
MenuItem item = menu.findItem(R.id.action_find);
// and through it the actionview
SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
Drawable searchIcon = getActivity().getResources().getDrawable(R.drawable.ic_action_search); // the new icon
// and now we search within the view for the "bad" image
ImageView collapsedSearchIcon = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_button);
// and finally replace it
collapsedSearchIcon.setImageDrawable(searchIcon);
}