SearchView находится внутри меню переполнения при использовании библиотек androidx

Привет, я недавно изменил свой проект Android, чтобы использовать библиотеки androidx из-за некоторых конфликтов.

Но теперь SearchView в моем Панель инструментов отображается внутри меню переполнения (внутри него просто отображается «Поиск», при нажатии на него ничего не происходит) чего не было при использовании старых библиотек поддержки.

Щелкните здесь, чтобы увидеть пример

Мне нужно вернуть старый вид поиска в виде значков. Пожалуйста помоги.

activity_main.xml

<com.google.android.material.appbar.AppBarLayout
    android:id = "@+id/appBar"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content">

<androidx.appcompat.widget.Toolbar
    android:id = "@+id/toolBar"
    android:layout_width = "match_parent"
    android:layout_height = "?attr/actionBarSize"
    app:logo = "@drawable/logo"
    app:layout_scrollFlags = "scroll|enterAlways|snap"/>

мой menu.xml

<item
    android:id = "@+id/action_search"
    android:icon = "@drawable/search_icon"
    android:showAsAction = "always|collapseActionView"
    android:actionViewClass = "androidx.appcompat.widget.SearchView"
    android:title = "@string/search"/>

и в onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main_menu,menu);

    SearchView searchView = (SearchView) menu.findItem( R.id.action_search).getActionView();

    return true;
}

Если это поможет, моя активность также является AndroidX AppCompatActivity

Я просмотрел документацию по androidx на веб-сайте разработчиков Android, а также много вопросов о stackoverflow, но не повезло. Кажется, эта проблема первая ..

4
0
7 392
1

Ответы 1

nothing happens when I click it

Ничего не происходит, потому что вы устанавливаете always|collapseActionView, что означает, что вы должны разместить SearchView следующим образом:

<item
        android:id = "@+id/action_search"
        android:icon = "@drawable/abc_ic_search_api_mtrl_alpha" <!-- You can change this.. -->
        android:title = "@string/srch"
        app:actionViewClass = "androidx.appcompat.widget.SearchView" 
        app:showAsAction = "ifRoom|collapseActionView" />

Проверьте мой полный ответ здесь: https://stackoverflow.com/a/34825224/4409113

Это не сработало, как я сказал, я использую библиотеки поддержки androidx, и в нем добавление searchview на панель инструментов помещает его в меню переполнения, хотя на панели инструментов есть только одно действие. Спасибо за ответ.

Gopikrishnan R 10.08.2018 10:06

Ух ты, Androidx не заметил. Как насчет обновленного ответа? Не могли бы вы попробовать и посмотреть, что произойдет?

ʍѳђઽ૯ท 10.08.2018 10:22

Я изменил всегда на ifRoom в пункте меню, и это ничего не изменило.

Gopikrishnan R 10.08.2018 12:31

Он не открывается и не сворачивается при нажатии на него? Обязательно использовать androidxactionViewClass? Потому что я думаю, что это должно работать с предоставленной ссылкой.

ʍѳђઽ૯ท 10.08.2018 12:37

Да потому что я использую и другие виджеты от androidx. Как вы думаете, это может быть ошибка или что-то в библиотеке androidx ?? Спасибо за помощь !

Gopikrishnan R 11.08.2018 07:57

Ну, я никогда не видел и не использовал этот класс: androidx.appcompat.widget.SearchView может быть новым, но я думаю, что ссылка, которую я предоставил в вопросе, должна помочь и будет работать с android.support.v7.widget.SearchView. Если этого не произошло, возможно, это ошибка или что-то в этом роде, и я попробую.

ʍѳђઽ૯ท 11.08.2018 08:00

Думаю нужно использовать app:actionViewClass = "androidx.appcompat.widget.SearchView" вместо android:actionViewClass...

Sven 01.10.2019 17:08

Другие вопросы по теме