Istnieje widget dla ActionBar, który nazywa się „SearchView”. Kiedy nie jest używany, wygląda następująco:
A kiedy jest używany, wygląda tak:
Chcę (oczywiście programowo) otworzyć widok wyszukiwania (uczynić go „używanym”).
Wypróbowałem kilka funkcji, takich jak:
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
searchView.performClick();
searchView.requestFocus();
Ale żaden z nich nie zadziałał ...
SearchView w XML:
<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
java
android
android-actionbar
Eli Revah
źródło
źródło
showAsAction="always"
sprawia, że ikona wyszukiwania pozostaje na pasku akcji, gdy jest rozwinięta, co nie przypomina wyglądu przy ręcznym ustawianiu wyszukiwania.Spróbuj wywołać
expandActionView()
MenuItem, a nie onActionViewExpanded () w ActionView.Mi to pasuje.
źródło
showAsAction: always
które powoduje pewne problemy.Jeśli chcesz korzystać z biblioteki wsparcia tylko wtedy, gdy jest to konieczne, zrób to
inaczej po prostu to zrób
źródło
Wiem, że to późno, ale
Spróbuj wywołać metodę expandActionView (), aby ją otworzyć, i collapseActionView (), aby ją zamknąć. Możesz wywołać requestFocus () w rzeczywistym widoku akcji za pomocą metody getActionView (), aby nadać fokus widokowi wyszukiwania :)
źródło
Rozszerzając odpowiedź Matthiasa Robbertsa:
Chciałem, aby fragment listy zachował swoją wartość wyszukiwania i ustawił ją po powrocie użytkownika z innego fragmentu.
a dla menu, które trzymam
always|collapseActionView
, w przeciwnym razie pozostaje otwarte, gdy użytkownik usunie tekst.źródło
Aby otworzyć
searchView
utrzymanieclose_button
w końcu, użyj tego wonCreate
: -źródło