文档章节

使用AppCompat ActionBar的问题

wisely
 wisely
发布于 2015/06/11 20:47
字数 444
阅读 41
收藏 0
点赞 0
评论 0

被support Appcompat actionbar不显示Home Icon的问题困扰了一下午,写点东西记录一下。 之前项目中使用的是Jfeinstein10 slidingMenu和Actionbarsherlock组合来呈现ActionBar和slidingMenu的,但是新项目中需要引入android-compat-support-v7. 因为Actionbarsherlock和support-v7是冲突的,不能在同一个项目中共存。所以需要替换Actionbarsherlock为support-lib中的Actionbar。

让Activity继承ActionBarActivity,然后在minefest中的activity中设置

theme=Theme.AppCompat.Light.DarkActionBar

但是最后的效果是ActionBar的Home icon死活不显示,但是原来用Actionbarsherlock是不用什么额外设置的啊。难道他们的用法不一样。翻墙去找答案。结果确实不一样。 首先自定义一个样式

 <style name="CustomerActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
          <item name="homeAsUpIndicator">@drawable/new_indicator</item>
    </style>

上面homeAsUpIndicator中指定的图片就是Home icon。 然后在minefest的Activity中使用这个Theme 在Activity中的代码

public class ActionBarDemo extends ActionBarActivity{
    public void onCreate(Bundle savedInstanceState) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
    
    public boolean onOptionsItemSelected(MenuItem item) {
		int id=item.getItemId();
		switch(id){
		case android.R.id.home:
			getSlidingMenu().toggle();
			break;
		default:
			return super.onOptionsItemSelected(item);
		}
		return true;
	}
}

在onCreate方法中使Home Icon显示,在onOptionsItemSelected方法中处理Home icon的点击事件,我在这里让它显示/关闭slidingMenu。

stack Overflow里说可以直接在minefest的Activity中添加android:icon=""来设置Home icon但是我没有成功。 关于Actionbarsherlock和ActionBar的比较可以参考这个提问 Actionbarsherlock Vs ActionBar

补充一点 在res目录下的有values*文件夹,比如values-v11,这个11指的就是android framework的版本号,在这里可以配置一些针对这个版本的特别设置,当在手机上运行时会根据手机的api版本选择离他最近但小于或者等于的values配置来设置界面。

© 著作权归作者所有

共有 人打赏支持
wisely

wisely

粉丝 32
博文 32
码字总数 9217
作品 0
杭州
程序员

暂无文章

JupyterLab安装地图插件

JupyterLab安装地图插件 (本文所述软件还在发展之中,欢迎加入开源项目,提供建议、测试和开发。) 在Jupyter中进行数据分析时,往往需要将数据叠加到地图上。简单的可以利用matplotlib/ec...

openthings
10分钟前
0
0
Coding and Paper Letter(八)

资源整理 1 Coding: 1.Python项目,由Allen Downey撰写的Think Python第二版的LaTeX源代码和支持代码。 ThinkPython2 2.R语言包h3jsr,h3jsr使用V8的神奇力量通过其javascript绑定提供对Ube...

胖胖雕
18分钟前
0
0
skiplist跳跃表

插入删除log(N) TODO

梦想游戏人
19分钟前
1
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

p柯西
33分钟前
0
0
Xshell登录阿里云服务器ECS

Xshell登录阿里云服务器ECS 1. 参考资料: 1). 《阿里云服务器怎么用?阿里云服务器使用教程》 链接:http://www.cr173.com/html/50758_1.html 2). eagle-zhang的CSDN博客《Xshell连接不上阿...

SuShine
42分钟前
1
0
IDEA中的HTTP Client Editor测试API

在前后端分离项目,前后端通过api进行通信。如果用postman免费版进行api测试的话,由于无法保存测试脚本到文件,不方便前端查看。 你可以选择付费版。也可以利用IDEA自带的HTTP Client Edito...

hutaishi
45分钟前
0
0
解决“只能通过Chrome网上应用商店安装该程序”的方法

摘要 : 最近有些用户反映某个Chrome插件在安装的时候,提示“只能通过Chrome网上应用商店安装该程序”,为了解决这一问题,Chrome插件网带来了相关的解决方法。 某些用户在Chrome插件网下载了...

沧海一刀
46分钟前
0
0
通过UNIX域套接字传递文件描述符

  传送文件描述符是高并发网络服务编程的一种常见实现方式。Nebula 高性能通用网络框架即采用了UNIX域套接字传递文件描述符设计和实现。本文详细说明一下传送文件描述符的应用。 1. TCP服务...

Bwar
49分钟前
0
0
python操作Excle

# -*- coding: utf-8 -*-from openpyxl import load_workbook, Workbook#index:第几个sheet页,第一个sheet页的index为0def readExcle(filename,index): # 加载excle文件 wb = l......

淺陌离殇
51分钟前
0
0
Apache爆日志文件漏洞

全球使用最广泛的Web服务器Apache近日被爆出了一个安全漏洞,该漏洞可能导致攻击者控制服务器。 该漏洞包含在mod_rewrite 模块中的do_rewritelog()日志函数中。由于该函数还无法完全过滤写入...

问题终结者
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部