Intereting Posts
Что действительно делает map.setMyLocationEnabled (true) SharedPreferences.getAll () не имеет ключей предпочтения, которые являются ложными. Как получить все ключи? Collapsing Action Bar, но только показывает, когда RecyclerView полностью отображает первый элемент Какие методы вызывают в жизненном цикле деятельности в следующих случаях: Android: правильный способ передать сообщение из фонового потока в поток пользовательского интерфейса? Не удалось остановить скачивание мультимедиа в Android Телефонная лодка Android LocalFileSystem не определена Разница между андроидом: ориентация = «вертикальная» против андроида: ориентация = «горизонтальная» Избегать выделения объектов в onDraw () (StaticLayout)? Как я могу выполнить элемент проверки в Chrome на своем устройстве Android Galaxy S3? Проблемы с установкой Android NDK Возобновить работу на Android Воспроизведение локально сохраненного видео HTML5 на Android Как использовать кеширование диска в Picasso? Как сделать UI, например, приложение Google Inbox на Android

Удалить значок / заголовок для панели действий с расширенным SearchView?

Я создал новый проект, ориентированный на 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); 

Но моя панель действий по-прежнему имеет это дополнение слева от поискового запроса:

Введите описание изображения здесь

Есть ли способ избавиться от него?

благодаря

——– Редактировать ——————–

Вот моя деятельность в полном объеме:

 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; } } 

Хотя похоже, что все еще есть место слева, вы можете использовать mSearchView.setBackgroundColor(Color.RED); Чтобы увидеть, что на самом деле нет.

Я не мог заставить @ викара работать, но я обнаружил, что еще один ответ от 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>