Searchview не отображается в Панели инструментов

У меня на самом деле проблема с моим поисковым окном в Support AppCompat v7 lib 24.0.0.

В SearchView не отображается текст и текст ввода (смотрите скриншот)

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

Поисковый запрос работает отлично.

Это мое меню

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

И вот мой onCreateOptionsMenu;

 menu.clear(); inflater.inflate(R.menu.menu_search, menu); MenuItem searchItem = menu.findItem(R.id.action_search); searchView = (SearchView) MenuItemCompat.getActionView(searchItem); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { //Perform the final search return false; } @Override public boolean onQueryTextChange(String newText) { //Text has changed, apply filtering? return false; } }); 

Я надеюсь, что кто-то может мне помочь. 🙂

Себастьян

У меня тоже есть эта проблема, я изменил высоту панели до абсолютного значения, а не wrap_content, и проблема решена. Я не знаю, почему, но я думаю, что эта проблема связана с CoordinatorLayout и высотой панели инструментов, что-то нарушает высоту SearchView. Если я использую LinearLayout вместо CoordinatorLayout и AppBarLayout, он работает.

menu.xml

 <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="@drawable/ic_search_white_24dp" android:orderInCategory="100" android:title="@string/action_search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always|collapseActionView" /> </menu> 

layout.xml

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height" android:paddingTop="@dimen/toolbar_top_padding" android:background="?attr/colorPrimary" app:title="@string/drawer_item_publisher_customization" app:layout_scrollFlags="scroll|enterAlways|snap" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tabLayout" app:tabGravity="fill" style="@style/DefaultTabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 

Значение toolbar_height:

 <dimen name="toolbar_height">75dp</dimen> 

До значения абсолютной высоты (layout_height: "wrap_content")

После абсолютного значения высоты (layout_height: «75dp»)

Если вы используете тему: .NoActionBar установите это в свой onCreate()

 setSupportActionBar(toolbar); 

Убедитесь, что вы добавили библиотеку AppCompat в свой проект. Расширяется ли ваша деятельность «AppCompatActivity»?

А также showAsAction shoud be: showAsAction="always|collapseActionView"

Надеюсь эта помощь!

Это очень странно. Я использую инструменты сборки 25.0.1 и поддержку lib 25.1.0. Для меня принятый ответ не нужен, но способ, которым был определен пункт меню, требует небольшого изменения. Мне это нужно так:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search" android:title="@string/search_title" android:icon="@drawable/ic_search_24dp" app:showAsAction="always|collapseActionView" app:actionViewClass="android.widget.SearchView"/> 

Где app:showAsAction – это ключ. Линт подчеркивает это как красное и говорит мне:

Должен использовать android:showAsAction при использовании библиотеки appcompat.

Однако, если у меня он установлен на android:showAsAction то поиск просто не появляется. Идите фигуру.

Intereting Posts