Intereting Posts
Как показать расположение меню в макете mainactivity в окне предварительного просмотра в Android Studio? Как изменить цвет фона ActionMode на Android Android: Как решить Bitmap java.lang.OutOfMemoryError? Что такое отдельная инструментальная цепочка? Отсутствие или неправильное изображение и фон случайным образом на протяжении всего жизненного цикла приложения Получить уникальный идентификатор устройства Android? Является ли libhoudini доступным для ARC в Chrome OS Разработка Android с несколькими устройствами Android: проблемы с Unicode / Charset при отправке SMS (sendTextMessage) Получение вращения из ExifInterface всегда возвращает 0 Запуск без отладки в eclipse В Android SQLite db как сопоставить определенные значения столбцов, которые имеют одинаковые идентификаторы в нескольких таблицах базы данных? Полоса хода с обеих сторон в андроиде Пустые Java-дженерики Как реализовать emoji в моем приложении для 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>