Actionbar以及Seachview设计
来源:互联网 发布:医疗软件开发 名单 编辑:程序博客网 时间:2024/06/06 06:34
最近在做一个项目,需要用到搜索功能,界面要设计成这样:
要用到Actionbar,actionbar是android3.0(API11)才可以,
第三方开源的actionbarsherlock支持使得Android 2.1以上。一般现在都是基于3.0的。actionbar可以通过res/menu文件添加按钮选项。你打开
res/menu
可以看到文件格式,按格式添加即可。有注意的地方其中有一个属性是showAsAction选值可以使:
1、 always:
2、ifRoom:
3、never:
4、withText:
5、collapseActionView 注意这个可以把图标展开。这点可能都知道。但是展开后会有一个箭头如下:
我的需求是不要箭头如下图:
那怎么办?
一、先说一下seachview。
网上有很多在actionbar添加搜索框的,按上面的可是就是出不来效果:有几点注意的:
1、版本。
2、主题
3、api的引入
基于版本2.1的theme可以用theme.appcompant及他的延伸版如@style/theme.appcompant.light和theme.appcompant.light.darkactionbar。根据自己定。基于版本3.0的可以选则@android:style/theme.holo以及他的延伸版。
注意:如果用activity引入@android:style/theme.holo,如果是actionbaractivity的话就引入@style/theme.appcompant.light。自己理解。
我选择的是theme.appcompant,
在res/menu中添加:app:actionViewClass="android.widget.SearchView"这句话,
注意:app:actionViewClass="android.widget.SearchView"和android:actionViewClass="android.widget.SearchView"或者android:actionViewClass="android.support.v7.widget.SearchView"
这里的seachview要和java代码中的seachview引入的包一致:
下面代码中的seachview。
用android的实验不成功,要用app这里不是绝对的,看看你的空间名:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"是app,
也可以使其他,我看网上又说用holo和其他的我试了一下也可以。前提就是 xmlns:xxx="http://schemas.android.com/apk/res-auto"要一样。
要不然出不来结果。
二、就是在actionbaractivity中添加代码,这里只实现视图,搜索功能展示,网上有。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.index, menu);
MenuItem item = menu.findItem(R.id.action_search);
SearchView view = (SearchView)item.getActionView();//seachview要一致,否则报错。
item.expandActionView();
view.setIconified(true);
return true;
}
其中说一下expandActionView和setIconified:
expandActionView
expandActionView是可以把图标展开但是这里和collapseActionView有区别,前面是不加箭头的,那么你就可以不再layout中申明用collapseActionView了,而在代码中用expandActionView,他的版本要求是API 14就是android4.0有点高
setIconified:图标化就是以图标的形式展示,值true就是一个图标,false就是展开的如图:
expandActionViewexpandActionViewexpandActionViewexpandActionViewexpandActionViewexpandActionView
true false5、collapseActionView 注意这个可以把图标展开。这点可能都知道。但是展开后会有一个箭头如下:
我的需求是不要箭头如下图:
那怎么办?
一、先说一下seachview。
网上有很多在actionbar添加搜索框的,按上面的可是就是出不来效果:有几点注意的:
1、版本。
2、主题
3、api的引入
基于版本2.1的theme可以用theme.appcompant及他的延伸版如@style/theme.appcompant.light和theme.appcompant.light.darkactionbar。根据自己定。基于版本3.0的可以选则@android:style/theme.holo以及他的延伸版。
注意:如果用activity引入@android:style/theme.holo,如果是actionbaractivity的话就引入@style/theme.appcompant.light。自己理解。
我选择的是theme.appcompant,
在res/menu中添加:app:actionViewClass="android.widget.SearchView"这句话,
注意:app:actionViewClass="android.widget.SearchView"和android:actionViewClass="android.widget.SearchView"或者android:actionViewClass="android.support.v7.widget.SearchView"
这里的seachview要和java代码中的seachview引入的包一致:
下面代码中的seachview。
用android的实验不成功,要用app这里不是绝对的,看看你的空间名:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"是app,
也可以使其他,我看网上又说用holo和其他的我试了一下也可以。前提就是 xmlns:xxx="http://schemas.android.com/apk/res-auto"要一样。
要不然出不来结果。
二、就是在actionbaractivity中添加代码,这里只实现视图,搜索功能展示,网上有。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.index, menu);
MenuItem item = menu.findItem(R.id.action_search);
SearchView view = (SearchView)item.getActionView();//seachview要一致,否则报错。
item.expandActionView();
view.setIconified(true);
return true;
}
其中说一下expandActionView和setIconified:
expandActionView
expandActionView是可以把图标展开但是这里和collapseActionView有区别,前面是不加箭头的,那么你就可以不再layout中申明用collapseActionView了,而在代码中用expandActionView,他的版本要求是API 14就是android4.0有点高
setIconified:图标化就是以图标的形式展示,值true就是一个图标,false就是展开的如图:
expandActionViewexpandActionViewexpandActionViewexpandActionViewexpandActionViewexpandActionView
item.expandActionView()这句可以省略。
也可以为search设置背景:
通过代码view.setBackgroundResource(android.R.drawable.editbox_background)或者view.setBackgroundDrawable
也可以设置颜色:
view.setBackgroundcolor。
网上有很多资源:
我用的说一下:
系统图标展示图:http://blog.csdn.net/jishu360/article/details/8540026
中文api:http://www.android-doc.com/
一个很好的开源项目网很好:https://github.com/Trinea/android-open-project
android资源库很好的:http://www.androiddevtools.cn/
0 0
- Actionbar以及Seachview设计
- actionbar以及制定
- actionbar以及制定
- actionbar以及制定
- 仿微信客户端ActionBar设计
- ActionBar的使用以及例子
- ActionBar的使用以及隐藏
- 去除ActionBar的阴影效果以及设置ActionBar的高度
- ActionBar---ActionBar应用实战,高仿微信主界面的设计
- ActionBar(2)基本操作:添加,去除ActionBar以及为ActionBar添加item
- ActionBar的使用以及向下兼容问题
- ActionBar
- ActionBar
- ActionBar
- Actionbar
- ActionBar
- actionbar
- actionBar
- Spring-管理bean
- Android-基本控件(CheckBox,RadioGroup,RadioButton)
- HDU1350 Taxi Cab Scheme (最小路径覆盖)
- 基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤
- currentTarge和target
- Actionbar以及Seachview设计
- [LeetCode] Add Binary
- Java Map接口TreeMap
- 解决Android SDK Manager下载速度慢的方法
- 3665 Seaside【floyd】
- Ubuntu下GTK的安装、编译和测试
- OpenCV2:Mat属性type,depth,step
- VirualBox中centos6.5共享文件夹
- poj 1035 串的对比