Pro Android学习笔记(四九):ActionBar(2):Action图标区

ActionBar的隐藏和现实

ActionBar bar = getActionBar();
bar.hide() //隐藏Action Bar
bar.show(); //显示Action Bar

ActionBar的action图标区

ActionBar的右侧就是action图标区域,如下图所示

这是ActionBar的menu区域,作为options menu的一部分,选择部分的菜单项在action bar中显示。我们先看看源代码,没有什么特别。小例子是在上一学习的例子上进行添加,直接采用继承方式。

public class ActionAreaTestCase2 extends HomePressTestCase1{
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.bar, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        showInfo("select : " + item.getTitle());
        return super.onOptionsItemSelected(item);
    }
}

关键看看R.menu.bar的xml是如何设置。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/menu_action_icon1"
            android:title="Action1"
            android:icon="@drawable/creep001"
            android:showAsAction="ifRoom"/> <!-- 与一般的item相比,增加了showAsAction的设置,表明在action bar中显示的情况,除了ifRoom,还有always、never、withText。也可以在代码中通过menuItem.setShowAsAction(int)来实现 -->
    <item android:id="@+id/menu_action_icon2"
            android:title="Action2"
            android:icon="@drawable/creep002"
            android:showAsAction="ifRoom"/>
    <item android:id="@+id/menu_action_icon3"
            android:title="Action3"
            android:icon="@drawable/creep003"
            android:showAsAction="ifRoom"/>
     ... ...
</menu>

如果我们要求在action bar显示的菜单项太多,超过action bar的空间时,则在普通的OptionsMenu位置显示,例如我们设置了6个菜单项,属性均有:android:showAsAction="ifRoom",显示如下:

如果在menu的xml文件中,有些属性没有设置为showAsAction,则这些item按常规的菜单方式显示。如下图:Normal的item是普通的菜单项:

如果我们没有设置图标,只设置了title,则显示文字,xml片段如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/menu_action_icon1"
            android:title="Action1"
            android:showAsAction="ifRoom"/> <!-- 没有icon的例子 -->
    <item android:id="@+id/menu_action_icon2"
            android:title="Action2"
            android:icon="@drawable/creep002"
            android:showAsAction="ifRoom|withText"/> <!-- 同时显示icon和文字的例子 -->
    … …
</menu>

本博文涉及的例子代码,可以在Pro Android学习:ActionBar小例子中下载。

相关链接: 我的Android开发相关文章

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Android 应用程序中实现顶部返回按钮,可以使用 ActionBar。ActionBar 是 Android 提供的一种 UI 控件,通常位于应用程序的顶部,用于显示应用程序名称、菜单和其他选项。 要实现 ActionBar 中的顶部返回按钮,请按照以下步骤操作: 1. 打开 Android Studio,创建一个新的空白项目。 2. 在 res/values/styles.xml 文件中添加以下代码: ``` <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> ``` 这将为应用程序创建一个基本的主题,其中包含一个暗色 ActionBar。 3. 在 AndroidManifest.xml 文件中,将应用程序的主题设置为上一步中创建的主题: ``` <application android:theme="@style/AppTheme" ... ``` 4. 在 MainActivity.java 文件中,添加以下代码: ``` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 启用 ActionBar 返回按钮 getSupportActionBar().setDisplayHomeAsUpEnabled(true); } // 处理 ActionBar 返回按钮点击事件 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // 在此处添加返回按钮点击后的处理逻辑 finish(); return true; } return super.onOptionsItemSelected(item); } ``` 这将启用 ActionBar 中的返回按钮,并在用户点击该按钮时关闭当前活动。 5. 运行应用程序,并确保 ActionBar 中显示了返回按钮。单击该按钮,应该会关闭当前活动。 注意:如果您的应用程序需要导航到其他活动,则可以在 onOptionsItemSelected() 方法中添加相应的 Intent。例如: ``` case android.R.id.home: Intent intent = new Intent(this, OtherActivity.class); startActivity(intent); finish(); return true; ``` 这将使 ActionBar 返回按钮导航到 OtherActivity。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值