【ActionBar的使用】
2016-03-10 13:58
369 查看
在AS工程中使用ActionBar
简单实用:
1、功能清单文件中指定主题标签属性Theme.Holo或其子类
2、可以自己指定显示的图标,默认是应用的图标
3、在Activity中设置属性
也可以设置Activity标签属性来设置隐藏
4、在res资源目录下创建一个menu文件夹,在menu文件夹创建一个actionbar_menu.xml
android:showAsAction :标签属性,根据需要自行设置
android:title :一般都设置,根据需要,但并不一定会显示,根据showAsAction标签影响
5、重写回调方法,就可以显示了
6、重写点击回调方法,根据需要添加代码
android.R.id.home默认指定的是左上角的图标点击响应
一般左上角的图标点击都是回退到主界面,在图标的点击响应添加代码
分享键的使用:
menu文件 actionbar_menu.xml中加入一个item
<item
android:id="@+id/action_share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="ifRoom"
android:title="分享" />
搞定
模拟器上没有几个分享选项,如果真机的话会更多一点。
简单实用:
1、功能清单文件中指定主题标签属性Theme.Holo或其子类
<application android :theme="@android:style/Theme.Holo.Light" >
2、可以自己指定显示的图标,默认是应用的图标
<activity android:name=".UI.MainActivity" android:logo="@drawable/icon" />
3、在Activity中设置属性
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); android.app.ActionBar actionBar= getActionBar(); actionBar.show();//设置显示 //actionBar.hide();//设置隐藏 actionBar.setHomeButtonEnabled(true); actionBar.setDisplayShowHomeEnabled(true);//以上两句是设置可以让actionBar的图标可以响应点击事件 actionBar.setDisplayHomeAsUpEnabled(true);//这一行用于返回效果 }
也可以设置Activity标签属性来设置隐藏
<activity android:name=".UI.WelComeActivity" android:theme="@android:style/Theme.NoTitleBar">
4、在res资源目录下创建一个menu文件夹,在menu文件夹创建一个actionbar_menu.xml
android:showAsAction :标签属性,根据需要自行设置
android:title :一般都设置,根据需要,但并不一定会显示,根据showAsAction标签影响
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_seek" android:showAsAction="always" android:actionViewClass="android.widget.SearchView" android:title="搜索" /> <item android:id="@+id/menu_history" android:showAsAction="never" android:title="查看历史" /> <item android:id="@+id/menu_down" android:showAsAction="never" android:title="查看下载" /> </menu>
fRoom | 会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。当然个 |
数并不仅仅局限于4个,依据屏幕的宽窄而定 | |
never | 永远不会显示。只会在溢出列表中显示,而且只显示标题,所以在定义item的时候,最好 |
把标题都带上。 | |
always | 无论是否溢出,总会显示。 |
withText | withText值示意Action bar要显示文本标题。Action bar会尽可能的显示这个 |
标题,但是,如果图标有效并且受到Action bar空间的限制,文本标题有可 | |
能显示不全。 | |
collapseActionView | 声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则, |
这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。 | |
一般要配合ifRoom一起使用才会有效果。 |
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actionbar_menu, menu); return super.onCreateOptionsMenu(menu); }
6、重写点击回调方法,根据需要添加代码
android.R.id.home默认指定的是左上角的图标点击响应
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Toast.makeText (this, "你点击了“home”按键!" , Toast.LENGTH_SHORT).show() ; return true; case R.id. menu_seek: Toast.makeText (this, "你点击了“搜索”按键!" , Toast.LENGTH_SHORT).show() ; return true; case R.id. menu_down: Toast.makeText (this, "你点击了“查看下载”按键!" , Toast.LENGTH_SHORT).show() ; return true; case R.id. menu_history: Toast.makeText (this, "你点击了“查看历史”按键!" , Toast.LENGTH_SHORT).show() ; return true; default: return super .onOptionsItemSelected(item); } }
一般左上角的图标点击都是回退到主界面,在图标的点击响应添加代码
case android.R.id.home: //finish();这个只是简单的销毁了当前的界面 Intent upIntent = NavUtils.getParentActivityIntent(this);//获取到跳转至父Activity的Intent //如果父Activity和当前Activity是在同一个Task中的,则直接调用navigateUpTo()方法进行跳转 if (NavUtils.shouldUpRecreateTask(this, upIntent)) { android.support.v4.app.TaskStackBuilder.create(this) .addNextIntentWithParentStack(upIntent) .startActivities(); } else {//如果不是在同一个Task中的,则需要借助TaskStackBuilder来创建一个新的Task upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); NavUtils.navigateUpTo(this, upIntent); } Toast.makeText(this, "你点击了“home”按键!", Toast.LENGTH_SHORT).show(); return true;
分享键的使用:
menu文件 actionbar_menu.xml中加入一个item
<item
android:id="@+id/action_share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="ifRoom"
android:title="分享" />
//实现分享ActionMenu显示 MenuItem shareItem = menu.findItem(R.id.action_share); android.widget.ShareActionProvider provider = (android.widget.ShareActionProvider) shareItem.getActionProvider(); intent = new Intent(Intent.ACTION_SEND); intent.setType("image/*"); provider.setShareIntent(intent);
搞定
模拟器上没有几个分享选项,如果真机的话会更多一点。
相关文章推荐
- 安卓之检测网络
- Android中的颜色设置
- easyui tree的简单使用
- [转]Node-Webkit配合HTML5实现拍照功能
- 正则表达式 - 简介
- Java基础知识之集合框架(一)
- CSS3中:nth-child和:nth-of-type的区别深入理解
- android如何实现国际化
- 发动机外特性曲线(工况图)疑惑
- 【iCore3 双核心板_FPGA】例程九:状态机实验——状态机使用
- JSP弹框界面
- 做一个合格的程序猿之浅析Spring IoC源码(四)分析BeanPostProcessor(1)
- Android 2016新技术
- WebView中的乱码问题
- 自定义View--------Android UI模板设计
- jQuery实现复选框全选、全不选、反选问题解析
- 1. Two Sum
- Android Studio添加assets文件夹
- HDU 1520 树形dp
- HDU 3001 Travelling (状压dp三进制)