设置屏幕缩放后缩放距离变为双倍
复现步骤(问题)
- 在Android6.0系统中设置屏幕缩放,向内缩小屏幕任意范围
- 在一定的条件下,如关闭一个dialog风格的activity、关闭popupwindow
- 会发现向内缩小的屏幕尺寸变大一倍
解决
通过Android Studio中的layout inspector分析发现:屏幕缩放的实现方式是在DecorView
中设置padding进行屏幕变化,但出现问题后,一个id为action_bar_root
的FitWindowsLinearLayout
中也出现了相同数值的padding。找到相应的abc_screen_simple.xml
后发现这个View上配置了android:fitsSystemWindows="true"
大部分的时候,你的应用都不会在状态栏和导航栏下面显示内容,如果你需要在他们下面显示内容,则需要确保你应用的可交互控件(比如按钮)不要显示在系统窗口下面了。 android:fitsSystemWindows=“true” 默认行为就是通过在 View 上设置和系统窗口一样高度的边框(padding )来确保你的内容不会出现到系统窗口下面。
所以将这个fitsSystemWindows
值改为false即可。
1 | override fun onResume() { |
设置屏幕缩放后缩放距离变为双倍