Hai bước là cần thiết.
Trước tiên, bạn phải đảm bảo rằng mục menu tìm kiếm của bạn luôn được hiển thị dưới dạng hành động và không bao giờ được chuyển vào menu mục bổ sung. Để đạt được điều này thiết lập thuộc tính showAsAction
menu mục tìm kiếm để always
:
<item
android:id="@+id/menu_search"
android:title="Search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView" />
Thứ hai, chắc chắn quan điểm hành động không được hiển thị trong biểu tượng hóa (ví dụ sụp đổ) Chế độ theo mặc định. Để thực hiện cuộc gọi này, hãy gọi setIconifiedByDefault(false)
trên ví dụ chế độ xem tìm kiếm của bạn:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my_activity, menu);
MenuItem searchViewItem = menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView) searchViewItem.getActionView();
[...]
searchView.setIconifiedByDefault(false);
return true;
}
Điều đó sẽ thực hiện.
nhận NPE tại tìm kiếm dòng thsiView.setIconifiedByDefault tôi đã sử dụng mã này SearchView searchView = (SearchView) menu.findItem (R.id.menu_search) .getActionView(); searchView.setIconifiedByDefault (sai); – Erum
Hãy thử lấy SearchView bằng MenuItemCompat.getActionView (menu.findItem (R.id.menu_search)) nếu bạn đang sử dụng SearchCompat SearchView –