Привет, я недавно изменил свой проект 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, но не повезло. Кажется, эта проблема первая ..
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 не заметил. Как насчет обновленного ответа? Не могли бы вы попробовать и посмотреть, что произойдет?
Я изменил всегда на ifRoom в пункте меню, и это ничего не изменило.
Он не открывается и не сворачивается при нажатии на него? Обязательно использовать androidxactionViewClass? Потому что я думаю, что это должно работать с предоставленной ссылкой.
Да потому что я использую и другие виджеты от androidx. Как вы думаете, это может быть ошибка или что-то в библиотеке androidx ?? Спасибо за помощь !
Ну, я никогда не видел и не использовал этот класс: androidx.appcompat.widget.SearchView может быть новым, но я думаю, что ссылка, которую я предоставил в вопросе, должна помочь и будет работать с android.support.v7.widget.SearchView. Если этого не произошло, возможно, это ошибка или что-то в этом роде, и я попробую.
Думаю нужно использовать app:actionViewClass = "androidx.appcompat.widget.SearchView" вместо android:actionViewClass...
Это не сработало, как я сказал, я использую библиотеки поддержки androidx, и в нем добавление searchview на панель инструментов помещает его в меню переполнения, хотя на панели инструментов есть только одно действие. Спасибо за ответ.