谈谈snackbar无动画的问题

不知道要写什么,所以打算先试水第一篇。

某天,我发现我的手机上的SnackBar动画没有了,但是我也挺喜欢SnackBar的动画。刚开始我以为是自己系统的问题,为此刷了好几次机,换了好几个系统,但结果都一样,过了一段时间都和之前一样没动画了。

因此我特意翻了一下百度,但没有任何结果。这里不得不吐槽一下度娘的垃圾。
搜索无果,我就暂时放下这个念头。

然而,我自己早前写的应用并没有这个问题。后来发现用design:23.2.1以前的库就没这个问题。但是24+的库无一例外都有这个问题。但我总不可能总是用旧版的design库吧。像TabLayout等一些新的控件得用高版本的。

某天心血来潮,换了必应,用的依旧是用中文关键词搜索(其实是懒得用谷歌了。而且英语不太好,懒得翻英文的)。于是就找到了一篇文章 原文链接:关于Scankbar无动画
大概内容就是Snackbar之所以没动画是因为开启了无障碍服务,在SnackBar的父类BaseTransientBottomBar中会检测无障碍服务的开启状况。
于是我也发现自己也开了一个应用的无障碍功能,问题果然出在这里!这样一来就知道了问题所在。

但是我一个初学者,而且kotlin的代码我也不太看得懂,因此现在这里告一段落。

最新的AndroidX库已经解决这个问题,这里不再深入.

如果对顶部Snackbar有兴趣的话可以往下看:
关于顶部snackbar,其实就是SnackBar的修改版,图我就不贴了,具体用法
1、先在build.gradle中添加依赖

compile 'com.androidadvance:topsnackbar:$version'

2、在需要的地方添加代码

TSnackbar.make(findViewById(android.R.id.content),"Hello World!",TSnackbar.LENGTH_LONG).show();

开源地址:TSnackBar

posted @ 2019-04-26 22:26  犯二的二  阅读(626)  评论(0编辑  收藏  举报