21

tôi có thể mở rộng quan điểm tìm kiếm bằng hành động như thế nàyForce xem hành động Bar chương trình tìm kiếm

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

Nhưng tôi có một hoạt động 3-tab và tôi muốn SearchView được luôn mở rộng Làm thế nào tôi có thể làm cái đó?

Trả lời

61

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.

+1

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

+0

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 –