java - 자바 dispose_on_close




프로그래밍 방식으로 SearchView를 열려면 어떻게해야합니까? (3)

'SearchView'라고 불리는 ActionBar 용 위젯이 있습니다. 사용하지 않을 때는 다음과 같이 보입니다.

사용 중에는 다음과 같이 보입니다.

물론 (프로그래밍 방식으로) searchview를 열어두기를 원합니다 ( "사용 중"으로 만드십시오).

나는 다음과 같은 몇 가지 기능을 시도했다.

SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setOnQueryTextListener(this);

    searchView.performClick();
    searchView.requestFocus();

하지만 그 중 아무도 ...

XML의 SearchView :

<item android:id="@+id/menu_search"
      android:title="Search"
      android:icon="@drawable/ic_action_search"
      android:showAsAction="ifRoom|collapseActionView"
      android:actionViewClass="android.widget.SearchView" />

ActionView에서 onActionViewExpanded ()가 아니라 MenuItem에서 expandActionView() 를 호출 expandActionView() .

그것은 나를 위해 작동합니다.

MenuItem searchMenuItem = menu.findItem(R.id.menu_search);
searchView = (SearchView) searchMenuItem.getActionView();
searchMenuItem.expandActionView();

늦었지만

펼치려면 expandActionView ()를 호출하고 닫으려면 collapseActionView ()를 호출 해보세요. getActionView ()를 통해 실제 Action View에서 requestFocus ()를 호출하여 검색보기 포커스를 지정할 수 있습니다.


필요한 경우에만 지원 라이브러리를 사용하려면이 작업을 수행하십시오.

    MenuItem searchMenuItem = menu.findItem(R.id.action_search);
    if (Utils.hasIceCreamSandwich())
        searchMenuItem.expandActionView();
    else MenuItemCompat.expandActionView(searchMenuItem);

그렇지 않으면 간단하게

    MenuItem searchMenuItem = menu.findItem(R.id.action_search);
    MenuItemCompat.expandActionView(searchMenuItem);




android-actionbar