使用扩展的SearchView删除操作栏的图标/标题?

我创build了一个新的项目,针对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); } 

哪些工作,但我不希望在操作栏上的任何图标或标题,只是searchview。 我试图通过这样做来摆脱我的头衔和图标:

 getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setDisplayShowTitleEnabled(false); getActionBar().setIcon(android.R.color.transparent); 

但是我的actionbar仍然在searchview的左边有这个填充:

在这里输入图像说明

有没有办法摆脱它?

谢谢

——–编辑——————–

这是我的全部活动:

 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> 

Solutions Collecting From Web of "使用扩展的SearchView删除操作栏的图标/标题?"

即使图标是透明的,它仍然占据了空间:

 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(px, LayoutParams.MATCH_PARENT); mSearchView.setLayoutParams(params); return true; } } 

尽pipe看起来左边还有空白,但可以使用mSearchView.setBackgroundColor(Color.RED); 看看真的没有。

我无法得到@ Vikram的awnser工作,但我发现Stack Overflow的另一个答案:

打开你的styles.xml文件,并在你的Actionbar风格中添加下面的代码

 <item name="android:displayOptions">showHome|homeAsUp|showTitle</item> <item name="displayOptions">showHome|homeAsUp|showTitle</item> <item name="android:icon">@android:color/transparent</item> <--this do the magic! 

p / s:我正在使用Actionbar Sherlock,这工作得很好

(请参阅从Android工作的操作栏中删除图标/徽标 )

关于左填充,你可以尝试使用collapseActionView

这是一个菜单示例:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:icon="@android:drawable/ic_menu_search" android:title="@string/search_hint" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom|collapseActionView" /> </menu>