我的SearchView显示如下:
正如您所看到的,SearchView的search_edit_frame和SearchView本身之外都有一个边距.
这是从哪里来的?检查布局显示search_edit_frame左侧有24个像素的边距,但在其他地方没有边距.
如何删除这个额外的空间?
menu.xml文件:
最佳答案
search_edit_frame是searchview布局中的LinearLayout.它的默认开始和结束边距为8dip.
@H_404_20@
您的问题可能是因为它的起始保证金.您可以从搜索视图中获取此线性布局,并设置布局参数以减少活动中的间隙(可能在onCreateOptionsMenu内部或类似于您正在膨胀此搜索视图的位置).
这样的事情,假设searchView是你的SearchView实例,
LinearLayout searchFrameLL=(LinearLayout)searchView.findViewById(R.id.search_edit_frame);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT);
params.setMargins(0,8,0); //params.setMargins(left,top,right,bottom)
// params.setMarginStart(0); //(or just use individual like this
searchFrameLL.setLayoutParams(params);
@H_404_20@
以类似的方式,您可以更新该xml中的其他属性以满足您的需求.