我正致力于在API级别11及更高版本中自定义Android Actionbar。我有一个Actionbar的自定义视图,其中我有一个带有其他图标的SearchView小部件。但是当搜索视图处于图标形状(而不是扩展形式)时,它需要的空间超过所需的空间(如下面的红色所示)。
如果我将我的图标更改为黑色图像,则会显示以下结果:
我已经浏览了搜索视图的xml布局,并尝试通过访问搜索视图中的各个视图来减少此填充,但空间不会被删除。我为此编写的代码如下:
searchView.setBackgroundColor(Color.RED);
searchView.setPadding(0, 0, 0, 0);
searchView.setIconifiedByDefault(true);
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null);
View searchPlate = searchView.findViewById(searchPlateId);
searchPlate.setBackgroundColor(Color.BLUE);
searchPlate.setPadding(0,0,0,0);
int searchTextId = searchPlate.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
final TextView searchText = (TextView) searchPlate.findViewById(searchTextId);
searchText.setPadding(0,0,0,0);
searchText.setBackgroundColor(Color.GRAY);
int searchImgId = getResources().getIdentifier("android:id/search_button", null, null);
ImageView v = (ImageView) searchView.findViewById(searchImgId);
v.setBackgroundDrawable(null);
v.setPadding(0, 0, 0, 0);
v.setImageResource(R.drawable.search);
我们可以这样做吗?我注意到一个问题是搜索视图xml布局使用了padding.Can是什么原因?
我看过很多关于自定义Actionbar和搜索视图的帖子,但是没有人完全回答我的问题。
请建议。
答案 0 :(得分:0)
可能是您的搜索图标图片有更多的宽度和高度。在任何图像编辑工具(如photoshop)中打开图像并查看图像大小,并尝试缩小图像宽度和高度,以及图像看起来很完美。
<强>更新强>
我认为这个问题背后的原因是ActionBar按钮或图标的默认值为android:minWidth,这是56dip,所以你需要改变它。
我希望它会有所帮助!!