ActionBar属性和效果修改

1 今天做android原生短信的二次开发,有个需求需要修改标题栏的颜色,发现覆盖windowntitle的一些属性,对于Theme.Light这类主题是有效的,但是对于Theme.Light.holo这类主题有些是无效的,只有覆盖ActionBar的一些属性才可以生效

分析了一下原因,大概是因为3.0之后加入了AcitonBar,也就是这个时候引入了Theme.Light这些主题,所以这些主题会去找AcitonBar的一些xml属性来解析。

 

效果很简单,修改了一下标题栏颜色


注:MmsHoloTheme是短信的主题

  <style name="TitleTheme" parent="MmsHoloTheme">
        <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
    </style>

    <style name="MyActionBarStyle" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#FF0000</item>
    </style>


2  ActionBar的一些属性

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        setTitle("abc");//设置标题

        ActionBar bar = getActionBar(); // 获取ActionBar的对象
        bar.setDisplayHomeAsUpEnabled(false); // 隐藏返回的箭头
//        bar.setHomeButtonEnabled(true);//设置按钮监听,通过onOptionsItemSelected()进行监听,资源ID为android.R.id.home
//        bar.setDisplayShowTitleEnabled(false);//隐藏label
//        bar.setDisplayShowHomeEnabled(false);//隐藏home icon
//        bar.setTitle("abc");//设置标题
//        bar.setSubtitle("efg");//设置子标题
        // //不显示箭头符号,允许通过onOptionsItemSelected()进行箭头,但一般的情况下,还是应该给个箭头提示给用户。
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            break;

        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值