BugDay(第一期)| Mark,一天少一点Bug

BugDay(第一期)| Mark,一天少一点Bug

1DialogFragment的cancelable问题

setCancelable (boolean flag)和setCanceledOnTouchOutside (boolean cancel),这两个方法想必大家耳详能熟了,在Dialog的使用中经常会遇到,前者用于控制按下返回键时是否取消对话框,后者用于控制点击空白处时是否取消对话框。

在API 11之后,系统引入了DialogFragment类,用于替换原有的Dialog类,至于它的好处不是本系列的重点。这里要说明的是,通过DialogFragment类的getDailog方法可以获取到Dialog对象。

通过这个Dialog可以控制DialogFragment的取消状态。但是殊不知,Dialog Fragment类本身提供了一个setCancelable (boolean cancelable)方法,替代掉了Dialog的setCancelable (boolean cancelable)方法,如果你还在使用Dialog的这个方法,将出现设置无效的问题,而对于setCanceledOnTouchOutside (boolean cancel),DialogFragment没有提供替代方案,大家实际开发中需要注意,官方文档介绍如下:

BugDay(第一期)| Mark,一天少一点Bug

2getDrawable获取资源问题

在Android代码中获取资源,第一反应会是context.getDrawable (int id)方法,但是如果的编译环境处于API 22或以上,会显示废弃标志,并提示: Resource has unresolved theme attributes,查看官网文档如下:

BugDay(第一期)| Mark,一天少一点Bug

可以看出,在API 22时已经废弃掉了,注意Note提示信息,大致意思是由于资源别名的问题可能会出现获取资源错误,推荐使用getDrawable (int id, Resources.Theme theme)方法,但是你会发现,这个方法必须在API 21及以上版本使用,所以存在版本兼容问题。

解决方案:如果仅仅是设置背景资源的情况,可以通过setBackgroundResource方法;其他情况下,可以通过Context的兼容类ContextCompact实现,最小支持API 4,所以可以放心大胆地使用。

BugDay  一天少一点Bug  

BugDay是[技术鸟]公众号新开启的Android开发系列文章,致力于纪录每天编程工作中遇到并解决的实际问题,以最精炼的语言,集火于最核心的问题,真正地实现[Mark,一天少一点Bug]的编程梦想。

友情推荐

FRIENDLY

专注程序员的编程知识,原创教程,最新动态等。现在是编程的黄金时代,是程序员的ShowTime。我们不是码农,不是屌丝,也不是程序猿,我们是程序员联盟

微信ID:ProgrammerLeague

BugDay(第一期)| Mark,一天少一点Bug

热门精选

☞ 儿童节专场|送给程序员的礼物,还有比这更合适的吗

☞ 这一行做久了,码农气息就无处不在了

☞  如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?

☞ 女程序员做了个梦,各路大神惊现神级评论!

☞ 攻下隔壁女生路由器后,我都做了些什么

BugDay(第一期)| Mark,一天少一点Bug

BugDay(第一期)| Mark,一天少一点Bug

阅读原文 查看【更多精彩】!

BugDay(第一期)| Mark,一天少一点Bug

相关文章:

  • 2021-08-22
  • 2021-12-07
  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-12
  • 2022-03-07
  • 2022-01-17
  • 2022-12-23
  • 2021-10-27
  • 2022-12-23
相关资源
相似解决方案