对于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 booleanonCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options, menu);
SearchViewsearchView = (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

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

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

在代码中,因为searchview放在menu中,所以真实代码如下

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubMenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.menu, menu);return super.onCreateOptionsMenu(menu);}

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. android文件打印--printerShare
  7. Android(安卓)Launcher3浅析(一)
  8. 使用Http协议请求网络
  9. Eclipse下Android开发,如何查看 API源代码、私有库源代码 文件 (a

随机推荐

  1. Android(安卓)Studio logcat 设置 缓存大
  2. android源码中的c c++库( android中动态和
  3. EditText使用详解-包含很多教程上看不到
  4. Android(安卓)软件自动更新功能实现的方
  5. 解决win8下AndroidSDK秒退的问题
  6. Stagefright框架解读(—)音视频Playback流
  7. Android下如何杀死后台进程
  8. 分析(Android下的任务和Activity栈)
  9. Android新版NDK环境配置(免Cygwin)
  10. Android中设计模式无处不在之单例模式