我创建了一个新项目,目标是api 11及以上版本.我有一个活动,我希望默认情况下扩展SearchView:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_search, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
mSearchView.setIconifiedByDefault(false);
}
哪个有效,但我不希望动作栏上有任何图标或标题,只是搜索视图.我尝试通过以下方式摆脱我的标题和图标:
getActionBar().setdisplayHomeAsUpEnabled(false);
getActionBar().setdisplayShowTitleEnabled(false);
getActionBar().setIcon(android.R.color.transparent);
但我的操作栏仍然在搜索视图的左侧有这个填充:
有办法摆脱它吗?
谢谢
——–编辑——————–
这是我的全部活动:
public class Greatandroid extends FragmentActivity {
private SearchView mSearchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActionBar().setdisplayShowHomeEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem mi = menu.findItem(R.id.action_search);
mSearchView = (SearchView) mi.getActionView();
mSearchView.setIconifiedByDefault(false);
return true;
}
}
这是菜单xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_search"
android:title="@string/search"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView" />
</menu>
解决方法:
即使图标是透明的,它仍占用空间:
getActionBar().setIcon(android.R.color.transparent);
getActionBar().setdisplayShowHomeEnabled(false);
现在,您应该让SearchView占用所有可用空间.
可折叠的操作项具有最大宽度.我能想到的唯一解决方法如下:
public class Greatandroid extends FragmentActivity {
private SearchView mSearchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActionBar().setdisplayShowHomeEnabled(false);
getActionBar().setdisplayShowTitleEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem mi = menu.findItem(R.id.action_search);
mSearchView = (SearchView) mi.getActionView();
mSearchView.setIconifiedByDefault(false);
// You can use display.getSize(Point) from API 13 onwards.
// For API 11 and 12, use display.getWidth()
final Point p = new Point();
getwindowManager().getDefaultdisplay().getSize(p);
// Create LayoutParams with width set to screen's width
LayoutParams params = new LayoutParams(p.x, LayoutParams.MATCH_PARENT);
mSearchView.setLayoutParams(params);
return true;
}
}
虽然看起来左边还有空格,但你可以使用mSearchView.setBackgroundColor(Color.RED);看到确实没有.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。