写之前先吐槽下自己,工作了这么多年,终于能静下心来写博客了
最近公司有个需求,要实现类似于抖音的小视频全屏播放的样式,当虚拟键盘展示的时候,竖屏视频就撑满整个屏幕,当虚拟键盘隐藏的时候,就需要让视频底部距离屏幕底部有个虚拟键高度的黑边,总结起来就是要保持视频的原始比例,效果如下图:
![title](https://i-blog.csdnimg.cn/blog_migrate/9e76e812bc10c64d8f964b5a79ab8f03.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/b7eb784707b615d966d2e7ce02a4a00d.webp?x-image-process=image/format,png)
方案一:监听一个全屏 View的高度
之前看到一个思路是,使用addOnGlobalLayoutListener监听一个全屏 View 的高度,然后不停的去检测当前是否展示了 NavigationBar,个人不太喜欢这个方案,有兴趣可以自行查找。
方案二:监听数据库System表字段变化
该方案通过监控settings数据库System表中navigationbar_is_min的变化,来判断当前是否显示虚拟键盘。经过测试,部分手机onChange方法并不会触发。
经过多番查证,问题有两个:
1.原来android5.0之后增加了多用户的特性ÿ