camera开发自定义UI,拍照预览页面顶部有toolbar,在华为honor手机上,出现如下奇葩问题:
> toolbar透明,但是toolbar上的按钮(back、闪光灯)点击事件依然生效。
开始以为是surfaceview的问题,后研究发现问题关键在于:底部有navigationbar,当我在系统设置里隐藏navigationbar后,toolbar正常显示了。
找到关键点就开始着手解决了!
首先navigationbar沉浸,以上问题解决(19及其以上支持.)
>又出现toolbar被statusbar遮挡问题,fitsystemwindow。
沉浸效果消失,UI极度丑陋,删除fitsystemwindow,toolbar加一层viewGroup包裹,并设置statusbar高度的paddingTop,并给此viewGroup设置背景颜色,问题解决。
以上,解决了问题一和问题二,既解决了camera预览,华为honor手机toolbar透明问题,又顺便实现了statusbar和navigationbar沉浸,美化UI,但是紧接着又出现了问题三:
manifest中配置的,针对editText和键盘的adjustSize属性失效,点击屏幕下方的editText 键盘会遮挡。
后研究发现是没在根布局配置fitsystemwindow属性,但是如果配置这个属性,沉浸就没啥效果了...怎么办?
自定义根布局,重写fitSystemwindow(Rect)方法,把rect.Top=0,具体改天上代码/截图。
哎,忙活一天就解决了这么个破事儿,烦躁。。。。