ActionBar 的全面介绍
来源:互联网 发布:淘宝模板设计师 编辑:程序博客网 时间:2024/05/16 09:36
对于这ActionBar我想很多人都想了解一下到底是怎么一个使用方法,以及它都存在哪些可操作的和使用的地方。
如下图所示:
这便是ActionBar的基本内容。
获得ActionBar的方法很简单actionBar = this.getActionBar();
1.Home图标区域:这里的图标当然可以在清单文件中定义,也可以在代码中定义,但是在代码中定义需要请求设置的"资格",即需要添加以下代码
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, resId);
而如果想要对home图标进行点击时间处理,则需要在为这个icon“使能”:
actionBar.setDisplayHomeAsUpEnabled(true);
此home图标的id便是androi.R.id.home;
这个home点击事件的监听是在public boolean onMenuItemSelected(int featureId, MenuItem item)里面获取的,例如:
2.标题区域,相应的也有
actionBar.setDisplayShowTitleEnabled(true);
当然我们也可以给标题栏设置自己的风格,但是那样也必须在setContentView(R.layout.custom_title);之前添加
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
然后就可以启用
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, resId);
resId便是自己想要的布局风格。
3.选项卡区域:这个区域,相信便是大家最想也是最近常使用的区域了,它同时有3中不同风格的类型:
ActionBar.NAVIGATION_MODE_TABS ActionBar.NAVIGATION_MODE_LIST ActionBar.NAVIGATION_MODE_STANDARD
ActionBar.NAVIGATION_MODE_STANDARD对于这个区域就不用多说了。
而对于前面两种如下图所示:ActionBar.NAVIGATION_MODE_TABS
当点第一个按钮时:
代码的实现其实也很简单:
这里必须为tab添加tablistener事件,如果要操作tab切换事件只需要实现监听方法即可。
implements ActionBar.TabListener
当点击第二个按钮时:
显示一个可以点击下拉的列表,代码如下
同样的需要实现以下它的点击监听事件implements ActionBar.OnNavigationListener 实现接口的方法便可对列表项进行你想要的操作。
4.菜单区域:其实这个区域也就相当于菜单,只是它将menu放到ActionBar这里而已,事件的监听和布局跟操作menu是一样的。
而如果你想要将menu放到ActionBar上,只需要将你需要填放的item添加一个android:showAsAction这样的属性
他同时提供给你几个可选的类型:ifRoom|withText 的意思上显示icon和字体 never是从不,always是总是。
如图所示:
当点击item1这个图标区域时:出现一个:submenu。顾名思义 这个下拉的item就是从属于item1的submenu,如果你想要达到这样的效果,只需要在menu中添加一个submenu便可实现这个效果例如本实例的简单实现:
这样就能达到如此效果。对于item的监听已经强调过,它就是menu的item,所以监听事件的处理在
public boolean onMenuItemSelected(int featureId, MenuItem item)
了解了这些,相信大家对这些区域对应的点击事件的处理都不是难事。
最后贴下源码,方便对照:
如下图所示:
这便是ActionBar的基本内容。
获得ActionBar的方法很简单actionBar = this.getActionBar();
1.Home图标区域:这里的图标当然可以在清单文件中定义,也可以在代码中定义,但是在代码中定义需要请求设置的"资格",即需要添加以下代码
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, resId);
而如果想要对home图标进行点击时间处理,则需要在为这个icon“使能”:
actionBar.setDisplayHomeAsUpEnabled(true);
此home图标的id便是androi.R.id.home;
这个home点击事件的监听是在public boolean onMenuItemSelected(int featureId, MenuItem item)里面获取的,例如:
[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
@Override
public
boolean
onMenuItemSelected(
int
featureId, MenuItem item) {
switch
(item.getItemId()) {
case
android.R.id.home:
Toast.makeText(
this
,
"home"
,
1
).show();
break
;
}
}
2.标题区域,相应的也有
actionBar.setDisplayShowTitleEnabled(true);
当然我们也可以给标题栏设置自己的风格,但是那样也必须在setContentView(R.layout.custom_title);之前添加
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
然后就可以启用
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, resId);
resId便是自己想要的布局风格。
3.选项卡区域:这个区域,相信便是大家最想也是最近常使用的区域了,它同时有3中不同风格的类型:
ActionBar.NAVIGATION_MODE_TABS ActionBar.NAVIGATION_MODE_LIST ActionBar.NAVIGATION_MODE_STANDARD
ActionBar.NAVIGATION_MODE_STANDARD对于这个区域就不用多说了。
而对于前面两种如下图所示:ActionBar.NAVIGATION_MODE_TABS
当点第一个按钮时:
代码的实现其实也很简单:
[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
actionBar.setTitle(
"选项卡"
);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar.newTab().setText(
"Tab1"
)
.setTabListener(MainActivity.
this
));
actionBar.addTab(actionBar.newTab().setText(
"Tab2"
)
.setTabListener(MainActivity.
this
));
actionBar.addTab(actionBar.newTab().setText(
"Tab3"
)
.setTabListener(MainActivity.
this
));
这里必须为tab添加tablistener事件,如果要操作tab切换事件只需要实现监听方法即可。
implements ActionBar.TabListener
当点击第二个按钮时:
显示一个可以点击下拉的列表,代码如下
[Java] 纯文本查看 复制代码
1
2
3
4
5
6
7
String[] str = {
"1"
,
"2"
,
"3"
,
"4"
,
"5"
};
actionBar.setTitle(
"列表"
);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(
new
ArrayAdapter<String>(
MainActivity.
this
,
android.R.layout.simple_spinner_item, str),
MainActivity.
this
);
同样的需要实现以下它的点击监听事件implements ActionBar.OnNavigationListener 实现接口的方法便可对列表项进行你想要的操作。
4.菜单区域:其实这个区域也就相当于菜单,只是它将menu放到ActionBar这里而已,事件的监听和布局跟操作menu是一样的。
而如果你想要将menu放到ActionBar上,只需要将你需要填放的item添加一个android:showAsAction这样的属性
他同时提供给你几个可选的类型:ifRoom|withText 的意思上显示icon和字体 never是从不,always是总是。
如图所示:
当点击item1这个图标区域时:出现一个:submenu。顾名思义 这个下拉的item就是从属于item1的submenu,如果你想要达到这样的效果,只需要在menu中添加一个submenu便可实现这个效果例如本实例的简单实现:
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<item
android:id=
"@+id/action_settings"
android:icon=
"@drawable/ic_launcher"
android:orderInCategory=
"3"
android:showAsAction=
"ifRoom|withText"
android:title=
"item1"
>
<menu>
<item
android:id=
"@+id/save"
android:icon=
"@drawable/ic_launcher"
android:orderInCategory=
"4"
android:showAsAction=
"ifRoom|withText"
android:title=
"item2"
/>
<item
android:id=
"@+id/item8"
android:icon=
"@drawable/ic_launcher"
android:orderInCategory=
"5"
android:showAsAction=
"ifRoom|withText"
android:title=
"item3"
/>
<item
android:id=
"@+id/item9"
android:icon=
"@drawable/ic_launcher"
android:orderInCategory=
"6"
android:showAsAction=
"ifRoom|withText"
android:title=
"item4"
/>
</menu>
</item>
这样就能达到如此效果。对于item的监听已经强调过,它就是menu的item,所以监听事件的处理在
public boolean onMenuItemSelected(int featureId, MenuItem item)
了解了这些,相信大家对这些区域对应的点击事件的处理都不是难事。
最后贴下源码,方便对照:
0 0
- ActionBar 的全面介绍
- ActionBar的完整介绍
- vsgflexgird的全面介绍
- setInterval全面的介绍
- setInterval全面的介绍
- setInterval全面的介绍
- setInterval全面的介绍
- setInterval全面的介绍
- UITextField 全面的介绍
- ActionBar介绍
- ActonBar介绍-修改actionbar的高度
- ActonBar介绍-修改actionbar的高度
- ActonBar介绍-修改actionbar的高度
- 对ActionBar中的一些方法的介绍
- ActionBar的介绍和简单利用
- 全面的牛壳介绍
- 比较全面的PCLint介绍
- JDBC最全面的介绍
- IOS SEL (@selector) 原理及使用总结(二)
- Webdrivercss原理分析-截图生成篇
- HTML第四节(Web设计基础)
- 百度web前端面试题--2014年
- MAC自带SVN的配置 +ConerStone的Svn Server的配置 +.a文件的上传
- ActionBar 的全面介绍
- springMVC系列之文件上传
- hadoop常见错误及解决办法(三)
- Perl 打印特定行日志
- spark内核简介
- android性能优化--布局优化
- ubuntun一些软件的安装,环境配置的基本步骤
- springmvc 多个视图解析器 排序
- android 添加界面介绍