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