android fitsSystemWindows的使用


今天,简单讲讲android


fitsSystemWindows的使用。


Android使用fitsSystemWindows属性实现--状态栏【status_bar】各版本适配方案


fitSystemWindows属性:

    官方描述:

        Boolean internal attribute to adjust view layout based on system windows such as the status bar. If true, adjusts the padding of this view to leave space for the system windows. Will only take effect if this view is in a non-embedded activity.

    简单描述:

     这个一个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所以不用留出空间)。


 
 
  • 1.fitsSystemWindow 默认是true,就是组件都在屏幕内,但是不包括statusBar。设置成false后,整个屏幕都可以放置组件,没有statusBar和window之分。

  • 2.android:fitsSystemWindows=“true”在布局中占有最高权限,如果明确设置为true,style设置fits为false是无效的;同理,只在布局中设置fits而没有设置style也是无效的。

平时使用中只需要设置style即可。效果就是整个图片铺满手机界面。


<style name="NoStatusStyle" parent="AppTheme">    
<item name="android:windowTranslucentStatus">true</item>    <!--状态栏为透明,如果设置为false,则没有黑色条盖住,见下图对比-->
<item name="android:windowTranslucentNavigation">true</item> <!--导航栏为透明-->    
<item name="android:statusBarColor">@android:color/transparent</item>
</style>



(注:在布局中都是android:fitsSystemWindows="false")


 
 
3.有时候会出现statusbar把界面盖住的情况,一般都是fits设置的有问题,或是在布局(android:fitsSystemWindows="false"),或是在style中fits设置为了false(<item name="android:fitsSystemWindows">false</item>),但是statusbar没有设置为透明,造成了界面被遮盖的现象。解决办法就是上面的代码块中的代码。(要明白自己的意图再去修改)


android fitsSystemWindows的使用就讲完了。


就这么简单。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: android:fitsSystemWindows是一个布局属性,用于指定布局是否需要考虑系统窗口的影响。当设置为true时,布局会被调整以适应系统窗口的边界,例如状态栏和导航栏。这个属性通常用于全屏模式下的布局,以确保布局不会被系统窗口遮挡。 ### 回答2: android:fitsSystemWindows是一个可以用来配置View的属性。它的作用是告诉View是否要改变自己的尺寸来适应系统窗口的大小变化。系统窗口可以是状态栏、导航栏等。当设置android:fitsSystemWindows为true时,View会自动调整自己的尺寸,使其内容不被系统窗口遮挡。当设置为false时,View会忽略系统窗口的大小变化,保持原有的尺寸。 使用android:fitsSystemWindows属性可以在设计界面时考虑到系统窗口的变化,确保内容能够完整的展示在屏幕上。一般情况下,顶部的状态栏与底部的导航栏会占据一部分屏幕空间,如果不适配这些系统窗口,可能会导致View的内容被遮挡或者布局不合理。 需要注意的是,android:fitsSystemWindows属性只会影响到直接包含该属性的View,而不会影响其子View。如果需要对所有子View都进行适配,可以在父View中设置android:fitsSystemWindows属性为true。 总结来说,android:fitsSystemWindows属性的主要作用是用来适应系统窗口的大小变化,确保View的内容能够完整显示在屏幕上。在设计界面时,可以根据实际需求灵活配置该属性,以获得更好的用户体验。 ### 回答3: android:fitsSystemWindows是一个针对Android应用程序窗口的布局属性,用于指定窗口内容是否需要适应系统窗口区域。 在Android系统中,系统窗口区域指的是屏幕上的状态栏(StatusBar)和导航栏(NavigationBar)等系统UI元素所占据的区域。默认情况下,应用程序的内容会延伸到系统窗口区域内部,但有些时候我们可能希望应用程序的布局能够适应系统窗口区域的变化。 通过在layout文件中使用android:fitsSystemWindows属性,可以控制应用窗口的布局是否考虑系统窗口区域。当android:fitsSystemWindows属性被设置为true时,表示应用程序的内容会被适应系统窗口区域,即内容将不会延伸至系统窗口区域内部。而当android:fitsSystemWindows属性被设置为false时,表示应用程序的内容不会适应系统窗口区域,即内容会延伸至系统窗口区域内部。 通过使用android:fitsSystemWindows属性,我们可以灵活地控制应用程序窗口的布局。例如,当我们希望应用程序的内容不被状态栏遮挡时,可以将android:fitsSystemWindows属性设置为true,使得内容适应状态栏所占据的区域,从而避免内容被状态栏遮挡。 需要注意的是,android:fitsSystemWindows属性只有在应用程序的主题中设置了android:windowTranslucentStatus或android:windowTranslucentNavigation属性时才会生效。这两个属性用于设置状态栏或导航栏的背景是否透明,如果没有设置这两个属性,即使设置了android:fitsSystemWindows为true,应用程序的内容仍然会延伸至系统窗口区域内部。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值