您的位置:首页 > 其它

ActionBar属性和效果修改

2015-07-03 18:46 344 查看
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);

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  修改ActionBar属性