Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Andorid SearchView默認擴展

Andorid SearchView默認擴展

編輯:Android開發實例

 對於ActionView,我們可以在menu的布局文件使用中來自定義searchview布局,如代碼

<item android:id="@+id/menu_search" 
    android:title="Search" 
    android:icon="@drawable/ic_menu_search" 
    android:showAsAction="ifRoom" 
    android:actionLayout="@layout/searchview" />

  也可以直接指定Android系統中的SearchView控件,那麼這時menu"_search的代碼要這樣寫

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

  大家注意上面的兩種方法中一個屬性是actionLayout制定一個layout xml布局文件,一個是actionViewClass指定一個類,最終調用可以在Activity中響應onCreateOptionsMenu方法映射這個menu布局即可。

  @Override 
public boolean onCreateOptionsMenu(Menu menu) { 
  getMenuInflater().inflate(R.menu.options, menu); 
  SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
  return super.onCreateOptionsMenu(menu); 
}

展示效果都是默認iconified的,縮起來無美感

想讓它expanded。在SearchView中看到有個public method:

void setIconified(boolean iconify)

(iconifies or expands the searchview)

於是果斷選擇自定義searchView

新建@layout/searchview

  <SearchView  android:id="@+id/searchview"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:iconifiedByDefault="false">  </SearchView>

在menu中android:layout="@layout/searchview"

在代碼中,因為searchview放在menu中,所以真實代碼如下

 

  1. @Override 
  2. public boolean onCreateOptionsMenu(Menu menu) {  
  3.     // TODO Auto-generated method stub  
  4.     MenuInflater inflater = getMenuInflater();  
  5.     inflater.inflate(R.menu.menu, menu);  
  6.     return super.onCreateOptionsMenu(menu);  
  7. }  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved