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);
}
}
分析了一下原因,大概是因为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);
}
}
相关文章推荐
- Nginx 与 Lua
- 九度1483 求最大最小数
- Python笔记:MySQLdb模块常用操作
- 线程锁
- 使用Builder模式造车
- JAVA并发
- NYOJ 236 心急的c小加
- 国产手机在mac os中无法被adb识别的解决方法(转)
- sqlserver 除法运算结果为小数时显示0
- 大二下学期总结
- CHANGE MASTER TO语法
- Stackoverflow/dapper的Dapper-Extensions用法(二)
- 【iOS开发系列】更换头像(相机、相册)
- Unix/Linux中的read和write函数
- nginx做反向代理和后端web服务器之间的交互
- LeetCode-Majority Element -解题报告
- C++ primer 学习笔记 2 快速入门2
- 求无符号数二进制中1的个数&&求一个字符串中最长的连续子串
- 闰秒惊魂
- 《轻量级Java EE 企业应用实战(第4版)——Struts2+Spring 4+Hibernate》 李刚 第三章 Struts2 开发流程 错误解决