Android ActionBar

个人开发笔记

安卓5.0之后继承AppCompatActivity,出现了一个ActionBar

1、初始画面

继承AppCompatActivity会出现初始的ActionBar


2、标题  (红色微标题图片)

一、标题用图片替换(没有布局)

     效果图:由于默认标题图片是靠左边的

    代码:

@Override
    protected void initActionBar() {
        super.initActionBar();
        //自定义logo
        ActionBar actionBar = getSupportActionBar();
        actionBar.setCustomView(R.layout.app_title_hui_ting);//自定义logo图标,标题文字在清单文件中已经设为空了,所有没有显示文字
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);//显示自定义
    }
二、标题用图片替换(有布局)

     效果图:布局设置标题居中

     代码:

@Override
    protected void initActionBar() {
        super.initActionBar();

        //标题布局配置
        ActionBar.LayoutParams alTitle = new ActionBar.LayoutParams(
                ActionBar.LayoutParams.WRAP_CONTENT,
                ActionBar.LayoutParams.WRAP_CONTENT,
                Gravity.CENTER
        );
        View viewTitleBar = getLayoutInflater().inflate(R.layout.app_title_hui_ting, null);


        ActionBar actionBar = getSupportActionBar();
        actionBar.setCustomView(viewTitleBar, alTitle);
        actionBar.setDisplayHomeAsUpEnabled(false);//去掉导航
        actionBar.setDisplayShowTitleEnabled(false);//去掉标题
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);//设置自定义的Custom
        actionBar.setDisplayShowCustomEnabled(true);//显示自定义Custom
    }

3、标题-子标题

     隐藏Label标签:actionBar.setDisplayShowTitleEnabled(false);

     设置标题,一个主标题,一个子标题
          actionBar.setSubtitle(“Inbox”);
          actionBar.setTitle(“Label:important”);

4、背景色

      ActionBar的背景色在style.xml中定义-注意兼容,由于兼容问题我的背景色始终显示不出来

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowContentOverlay">@null</item>//去掉阴影
    
    <!-- 设置ActionBar背景色 -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <!--兼容-->
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar属性 -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="android:background">@color/app_bg_color</item>
    <!-- Support library compatibility -->
    <item name="background">@color/app_bg_color</item>
</style>

5、去除阴影-见4

6、Fragment中调用Activity中的ActionBar   

 ((AppCompatActivity)getActivity()).getSupportActionBar().hide();

7、返回按钮

      actionBar = getActionBar();  
      actionBar.setDisplayHomeAsUpEnabled(true);  //显示返回按钮
      actionBar.setHomeAsUpIndicator(R.drawable.back);  //替换图标

8、创建菜单

java:
/* 创建Menu菜单 */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {//创建Menu菜单
        getMenuInflater().inflate(R.menu.activity_main, menu);

        //搜索监听
        SearchView searchView = (SearchView) menu.findItem(
                R.id.action_search).getActionView();
        //searchView.setOnQueryTextListener((OnQueryTextListener) this);// 搜索的监听
        return true;
    }


menu:activity_main.xml
<pre name="code" class="java"><menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:yourapp="http://schemas.android.com/apk/res-auto">
    <!-- Search, should appear as action button -->
    <!--yourapp:actionViewClass="android.support.v7.widget.SearchView"-->
    <item
        android:id="@+id/action_search"
        android:icon="@mipmap/btn_action_search"
        android:title="@string/action_search"
        yourapp:showAsAction="ifRoom" />

    <!-- 绘厅 home -->
    <item
        android:id="@+id/hui_ting_home"
        android:icon="@mipmap/ic_hui_ting_home"
        android:title="@string/hui_ting_home"
        yourapp:showAsAction="ifRoom" />

</menu>

 

9、Menu菜单点击

/* 处理ActionBar中菜单条目的点击事件 */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_search:
            UiUtils.showToast("我是搜索时间");
            break;
        case R.id.hui_ting_home:
            UiUtils.showToast("我是主页");
            break;
        default:
            break;
    }
    return super.onOptionsItemSelected(item);
}


10、ActionBar显示隐藏

如果没有第二句,系统自带一个隐藏的动画(慢慢有下往上隐藏)

//ActionBar隐藏
actionBar.hide();
actionBar.setShowHideAnimationEnabled(false);//取消隐藏动画

//ActionBar显示
actionBar.show();
actionBar.setShowHideAnimationEnabled(false);//取消显示动画






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beluga_白鲸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值