Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Android 开发 Tip 2

$
0
0

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/70173560


多主题下引用attr的问题。

在5.0以下手机,如果drawable xml文件中引用了attr ,则会出现类似下面的错误

04-14 14:43:06.413: W/System.err(13850): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jacksen.demo.view/com.jacksen.demo.view.selector.TestSelectorActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class RadioButton
04-14 14:43:06.413: W/System.err(13850):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
04-14 14:43:06.413: W/System.err(13850):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2521)
04-14 14:43:06.413: W/System.err(13850):    at android.app.ActivityThread.access$800(ActivityThread.java:172)
04-14 14:43:06.413: W/System.err(13850):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
04-14 14:43:06.413: W/System.err(13850):    at android.os.Handler.dispatchMessage(Handler.java:110)
04-14 14:43:06.413: W/System.err(13850):    at android.os.Looper.loop(Looper.java:193)

但是在5.0及以上手机上并没有问题。


经过排除法确定是 ?attr 的问题。

在stackoverflow上有关于该问题的讨论

http://stackoverflow.com/questions/30756729/android-selector-drawable-doesnt-work-with-attributes

这里写图片描述

这里写图片描述

这是一个5.0之前的系统bug。

在Google Issue Tracker网站上也有开发者提交此问题:

https://issuetracker.google.com/issues/36941443


解决方案:

其实也简单,不是在xml中,定义drawable时,引用?attr有问题嘛!那就不用?attr,直接通过@drawable的形式引用资源

然后需要做的就是对每个主题定义一个drawable.xml

http://stackoverflow.com/questions/8041537/how-to-reference-style-attributes-from-a-drawable

作者:crazy1235 发表于2017/4/14 16:31:28 原文链接
阅读:316 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles