ActionBar的简单使用
来源:互联网 发布:阴茎折断 知乎 编辑:程序博客网 时间:2024/05/04 15:52
ActionBar介绍
在API22之前我们使用标题栏基本都是在ActionBarActivity的Activity中处理的,而API22之后,谷歌遗弃了ActionBarActivity,推荐我们也可以说是强制我们使用AppCompatActivity。
ActionBar是位于Activity顶部,用于显示Activity的图标,标题,以及菜单的。可用于导航等功能,广泛应用于View的交互。ActionBar可分为三部分,分别是第一Icon、第二Item(操作按钮)、安排不下的或不足够重要的操作被隐藏在第三overflow按钮(超出空间的action)。
所有的操作按钮和 action overflow 中其他可用的条目都被定义在 menu资源 的 XML 文件中。通过在项目的 res/menu 目录中新增一个 XML 文件来为 action bar 添加操作。
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 搜索, 应该作为动作按钮展示--> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" android:showAsAction="ifRoom" /> <!-- 设置, 在溢出菜单中展示 --> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:showAsAction="never" /></menu>
icon 属性要求每张图片提供一个 resource ID。
当 action bar 有可用空间时,搜索操作将作为一个操作按钮来显示,但设置操作将一直只在 action overflow 中显示。
为 Action Bar 添加操作
要为 action bar 布局菜单条目,就要在 activity 中实现 onCreateOptionsMenu() 回调方法来 inflate 菜单资源从而获取 Menu 对象。
@Overridepublic boolean onCreateOptionsMenu(Menu menu) { // 为ActionBar扩展菜单项 MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity_actions, menu); return super.onCreateOptionsMenu(menu);}
为操作按钮添加响应事件
当用户按下某一个操作按钮或者 action overflow 中的其他条目,系统将调用 activity 中onOptionsItemSelected()
的回调方法。在该方法的实现里面调用MenuItem的getItemId()来判断哪个条目被按下 - 返回的 ID 会匹配我们声明对应的 <item>
元素中 android:id
属性的值。
@Overridepublic boolean onOptionsItemSelected(MenuItem item) { // 处理动作按钮的点击事件 switch (item.getItemId()) { case R.id.action_search: openSearch(); return true; case R.id.action_settings: openSettings(); return true; default: return super.onOptionsItemSelected(item); }}
为下级 Activity 添加向上按钮
在不是程序入口的其他所有屏中(activity 不位于主屏时),需要在 action bar 中为用户提供一个导航到逻辑父屏的up button(向上按钮)。
当运行在 Android 4.1(API level 16) 或更高版本,或者使用 Support 库中的 ActionBarActivity 时,实现向上导航需要在 manifest 文件中声明父 activity ,同时在 action bar 中设置向上按钮可用。
<application ... > ... <!-- 主 main/home 活动 (没有上级活动) --> <activity android:name="com.example.myfirstapp.MainActivity" ...> ... </activity> <!-- 主活动的一个子活动--> <activity android:name="com.example.myfirstapp.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- meta-data 用于支持 support 4.0 以及以下来指明上级活动 --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity></application>
然后,通过调用setDisplayHomeAsUpEnabled() 来把 app icon 设置成可用的向上按钮:
@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_displaymessage); //设置标题文字 getSupportActionBar().setTitle("地理位置"); getSupportActionBar().setDisplayHomeAsUpEnabled(true); // 如果你的minSdkVersion属性是11或更高, 应该这么用: // getActionBar().setDisplayHomeAsUpEnabled(true); //修改图标 //getSupportActionBar().setHomeAsUpIndicator(R.mipmap.de_actionbar_back);}
- ActionBar的简单使用
- ActionBar的简单使用
- Actionbar使用的简单实例
- android actionbar的简单使用
- android初学------ActionBar的简单使用
- 简单DrawerLayout与ActionBar的结合使用
- android简单实例---------ActionBar的简单使用(一)
- android简单实例---------ActionBar的简单使用(三,补充)
- 超简单的ActionBar
- 38 Android actionbar 简单使用
- 重拾Android之ActionBar的简单使用
- ActionBar简单使用介绍和Tab切换的应用
- ActionBar的详细使用
- Actionbar的使用
- [Android] ActionBar的使用
- ActionBar的使用
- android ActionBar的使用
- ActionBar的使用
- 【机器学习】p3客户细分中的参考资料skewed distribution
- Unity3D MineCraft 我的世界 用Unity3D制作类似MineCraft我的世界的游戏:各种树
- 文章标题
- CMD运行node.js
- AVFoundation拍摄视频
- ActionBar的简单使用
- Redis中重写malloc等
- ngCordova插件(2)之BarcodeScanner插件的使用
- java.util.Date java.sql.Date
- tomcat https配置
- java基础巩固---JDBC的接口核心API
- [随机化调整] Ural 1144 The Emperor's Riddle
- 支持向量机_5:Numerical Optimization
- Linux中用户及文件权限管理