android:fitsSystemWindows

背景

最近在做沉浸式状态栏(状态栏背景透明)时,使用android:fitsSystemWindows属性来适配内容不超出状态栏,但出现了toast显示异常,内容被截断后超出背景。最后发现是因为在theme中设置android:fitsSystemWindows=“true”导致了。随即在布局文件xml的根节点设置android:fitsSystemWindows=“true”就解决问题。在此记录一下。

fitSystemWindows属性

     这个一个boolean值的内部属性,让view可以根据系统窗口(如status bar)来调整自己的布局,如果值为true,就会调整view的paingding属性来给system windows留出空间....

实际效果

     当status bar为透明或半透明时(4.4以上),系统会设置view的paddingTop值为一个适合的值(status bar的高度)让view的内容不被上拉到状态栏,当在不占据status bar的情况下(4.4以下)会设置paddingTop值为0(因为没有占据status bar所以不用留出空间)。
 

注意:在theme中设置此属性可能会导致toast显示异常,所以尽量在布局文件的根节点设置此属性。

你可能感兴趣的:(android:fitsSystemWindows)