Android 5.0/5.1开发问题专贴

Android 5.0/5.1开发问题专贴

注:非5.0特定的开发问题,可以在这个帖子里查:Android开发问题汇总

1、官方提供的例子android-support-v7-appcompat编译时提示android:actionModeShareDrawable属性不存在

官方例子里这个工程的target是19,需要改为21才能正确编译,否则提示“error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.”。具体方法是修改project.properties文件,将target=19改为target=21,然后clean此工程或重启eclipse即可。参考链接

若仍然无法编译,可能是appcompat的版本不是最新,请通过sdk manager将support包全部升级到最新版(见下图,图片来自这里。国内用户如果无法升级,可修改hosts文件将dl-ssl.google.com静态解析到可访问的ip地址,ip地址可参考这个帖子,在超级ping里获取到)。

2、parseSDKContent failed问题

升级sdk到5.0以后,原来的Eclipse经常弹出parseSDKContent错误对话框,甚至有时会提示AndroidManifest file missing。

解决方法是删除.android目录(参考链接,在windows里这个目录是C:\Documents and Settings\YOUR_USER_NAME\.android或C:\Users\YOUR_USER_NAME\.android),不过这样会同时删除掉debug.keystore文件。也有人说不需要删除整个.android目录,更新DDMS就可以了(是指更新ADT?),但我没有试过。

3、谷歌开源的Material Design图标

可以从GitHub上下载,链接在此。另外,materialdesignicons.comandroidicons.com这两个网站也提供了一些不错的material design图标下载。

其他开源图标库:阿里巴巴提供的iconfont.cn,图标社区NounProject

在线LowPoly生成器:Trianglify

4、PreferenceActivity不显示actionbar

参考这个帖子,目前support包不支持PreferenceActivity(没有PreferenceActionbarActivity这样的类),所以解决方法要么是改用PreferenceFragment,要么使用第三方的补丁包(Fragment的方案),另一个补丁包(Activity的方案,但有缺陷——getPreferencesXmlId()只接受一个preference.xml文件)。

5、Dialog Theme的actionbar背景颜色显示不全

如下图所示,当使用Theme.AppCompat.Light.Dialog时发现actionbar背景色只显示出一半。根据这个帖子的讨论,可能是AppCompat的目前版本还没有做好。

6、使用appcompat里RecyclerView和CardView时的问题

GitHub上的这个开源项目可以帮助解决一些问题,例如添加divider、点击事件等等,但还远远不够。

CardView的多状态背景色问题,暂时没有解决,参考链接

下拉刷新:可使用android原生的SwipeRefreshLayout解决;

上拉翻页:方案1)仍使用SwipeRefreshLayout; 方案2)自己监听事件实现Endless效果;

HeaderView:RecyclerView没有像ListView那样提供addHeaderView()方法,要实现类似效果,有两种方法:1)将第一个item作为header,使用android-parallax-recyclerview这个库; 2)让第一个item完全透明,下层显示一个同高的view作为header,使用ASOV这个库。

7、实现Material Design(简称MD)的方方面面

MD是一系列UI特性的组合,阿里巴巴团队的这个帖子介绍得清晰易懂,但要在我们的应用里逐一实现这些特性就不那么容易了,特别是要兼容Android 4.x甚至2.x的时候。Google官方AppCompat v21在这方面只提供了有限的支持,例如ActionBar和侧滑菜单,而像FAB(Fixed Action Button)等等则没有包含在内。

其实在GitHub上已经有不少第三方的实现,值得一提的是,这个名为MaterialDesignCenter的项目把大量相关项目汇总在了一起供开发者参考,值得一看。以下列出我认为值得使用的第三方实现:

FAB: FloatingActionButton

对话框: material-dialogs

各类UI控件: MaterialDesignLibrary

另外几个汇集了android上各类交互效果的项目Interactive-animationawesome-android-uiandroid-open-project(300+项目,不仅限于MD),同样值得参考。

8、使用SlidingTabLayout替代Actionbar的tab导航

v7包的Actionbar对象里,与navigation有关的方法(例如setNavigationMode)都不建议使用了,应使用googleio2014提供的SlidingTabLayout实现类似功能。

参考链接1参考链接2

9、Android 5.1将AlarmManager的setInterval()最小值限制为1分钟

这个比较坑,毕竟有一些应用依赖AlarmManager机制进行更新,当设备升级到android 5.1后就会出现问题。由于开发文档里并没有提到,所以具体情况见googlecode上的讨论。讨论链接需FQ,google主要回复如下:

“If you are trying to run more often than every 5 seconds, alarms are the wrong way to go about it. Waking up the device that often is extremely bad for battery life. If you have live UI that needs to be updated continually, use a wakelock and then schedule your activity on a handler. This is actually *more* battery efficient than setting an alarm every second.”

替代方法是在Service里使用ScheduledExecutorService实现定时任务,与AlarmManager的区别见 参考链接

10、使用Android Support Design开发包实现Material Design

Google在2015 I/O大会推出了Android Support Design开发包,方便开发者实现多种常用的MD效果。以下几个有用链接:

INTRODUCTION TO COORDINATOR LAYOUT ON ANDROID

(译)掌握 Coordinator Layout 

高逼格UI-ASD(Android Support Design)

NestedScrollView

CoordinatorLayout与滚动的处理

Android Design Support Library使用详解

(未完待续)

本文转自博客园八进制的博客,原文链接:Android 5.0/5.1开发问题专贴,如需转载请自行联系原博主。

时间: 2024-12-21 19:37:42

Android 5.0/5.1开发问题专贴的相关文章

Mono for Android 4.0, 用 C# 开发 Android 应用

Xamarin 刚发布了 Mono for Android 4.0,该项目使得 C#/.NET 的开发者可以为 Android 设备开发应用程序. Mono for Android 4.0 提供对 Google 新的冰淇淋三明治 Android 4.0 操作系统的支持. 该项目为 Visual Studio 提供一个插件用来开发 Android 应用. 使用 Mono for Android, 你可以完全使用 C# and .NET 的便利措施: LINQ Support Work With X

《深入解析Android 5.0系统》——第1章,第1.3节安装一些有用的工具

1.3 安装一些有用的工具深入解析Android 5.0系统在开发和学习Android的过程中,一些辅助工具会非常有用,下面介绍几种必备的工具.另外还有一些有用的小工具,在后面的章节中会穿插介绍. 1.3.1 安装Android SDK编译Android的源码并不需要Android SDK,但是Android SDK 中附带了很多有用的工具,如adb.ddms.hierarchyviewer等,都是进行Android系统开发调试必须用到的. Android SDK需要从Android的官方网站中

Android 4.0和WP7.5开发技术对比

对于谷歌Android 4.0 Ice Cream SandWich和微软WP7.5 Mango在开发技术上作对比,可以看出早期Google学习了Microsoft的WPF的设计方式,由于微软Windows Phone 7发布缓慢,导致Google在技术上将微软复杂的设计方式改进,从现在来看安卓冰激凌三明治和微软WP7芒果来看开发技术上仍然存在着巨大的差异.对于 准备步入移动开发的网友,就目前主流的系统做简单的分析: 一.UI控件和设计模式 对于WP7来说,整体控件数量不如Android丰富和实

Android开发工具——Android studio1.0正式版使用技巧

Android Studio介绍                     Android Studio是一个为Android平台开发程序的集成开发环境.2013年5月16日由Google产品经理Ellie Powers在Google I/O上发布,可供开发者免费使用.2013年5月发布早期预览版本,版本号为0.1.2014年6月发布0.8版本,至此进入beta阶段.第一个稳定版本于2014年12月8日发布.Android Studio基于JetBrains IntelliJ IDEA,为Andr

Android 4.2 工程导入 5.0 SDK Eclipse 开发环境出现的问题总结

Android 4.2 工程导入 5.0 SDK Eclipse 开发环境出现的问题总结 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 首先,我的 Android SDK 下载情况,如上图所示

Android 6.0指纹识别App开发案例_Android

在android 6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚啊.在google全新发布的nexus设备:nexus 5x和nexus 6p中都携带了一颗指纹识别芯片在设备的背面,如下图(图片来自网络): 笔者手中的设备就是图上的那台黑色的nexus 5x,话说这台机器很是好看呢!手感超棒! 废话不多说,下面我出一个指纹识别的demo app,并且详细说明怎么

Android 3.0开发代号Gingerbread 四季度发布

Android 2.2带来了http://www.aliyun.com/zixun/aggregation/12592.html">Flash 10.1和更高的性能,看上去非常酷,不过Google已经开始准备发布3.0版了,新版开发代号"姜饼面包" Android 3.0可以工作在手机或者平板上,而低版本的2.1和2.2将会被用来占领低端智能机市场.3.0的最低系统需求目前被锁定在1GHz的处理器,512M内存和3.5英寸屏幕,当然它支持更大的屏幕和更高的分辨率. 值得

Android Tools 0.03发布 Android集成开发工具

Android Tools 是一款用于创建.安装和测试http://www.aliyun.com/zixun/aggregation/1997.html">Android应用的轻量级集成开发工具.该工具可以通过点击来访问Android的命令.文件.目录和文件.它具有一个内置的文本编辑器,使学习和使用Android更容易. Android Tools 0.03该版本支持Proguard的配置文件,增加了Android 4.0和Ant 1.8.2版本.用于Mac OS的支持得到了改善.模拟器窗

深度了解Android 7.0 ,你准备好了吗?

2016年8月22日,谷歌正式推送Android 7.0 Nougat(牛轧糖)正式版,他们还会三个月一次推送开发版,而曝光的消息看,第一个开发版就是Android 7.1,Android N主要新增了以下的新特性和优化. 一.新的Notification Android N 增加了许多新的notifications API,进行了重新的设计,引入了新的风格. ● 模板更新:开发者将能够充分利用新模板,只需进行少量的代码调整. ● 消息样式自定义:可以自定义更多与使用MessageStyle类的