文档章节

使用AppCompat ActionBar的问题

wisely
 wisely
发布于 2015/06/11 20:47
字数 444
阅读 43
收藏 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
杭州
程序员
js在IE和firefox中的不同

1.firefox不能对innerText支持。 firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含...

雪中漫步
2010/03/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多
八月新增开源项目:假装自己是图形界面的 Git 命令行工具

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

编辑部的故事
昨天
7
0
20180918 find命令与Linux文件扩展名

命令find 用来查找搜索文件。 搜索文件相关命令: which 从环境变量里的目录中去搜索 whereis(不常用) 从一个固定的库中搜索 locate(需要单独安装 yum install -y mlocate) 查询时会从/var/...

野雪球
昨天
1
0
GO 数组相关操作

package mainimport("fmt""math/rand""time")func main() {//数组的几种定义方式var arr1 [3]int = [3]int{1,2,3}var arr2 = [3]int{4,5,6}arr3 := [3]string{"h", "w", ......

汤汤圆圆
昨天
1
0
JAVA 中interrupt、interrupted和isInterrupted的区别

首先,我们说明下三个方法的功能 interrupt() 向当前调用者线程发出中断信号 isinterrupted() 查看当前中断信号是true还是false interrupted() 是静态方法,查看返回当前中断信号并将中断信号...

我爱春天的毛毛雨
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部