android:fitssystemwindows的作用,android中fitsSystemWindows的用处

在android的XML中设置fitsSystemWindows的分析,

网上的文章都说得不太清楚

fitsSystemWindows只作用在sdk>=19的系统上就是高于4.4的系统**

android:fitsSystemWindows="true"

这个属性可以给任何view设置,只要设置了这个属性此view的所有padding属性失效.

只有在设置了透明状态栏(StatusBar)或者导航栏(NavigationBar)此属性才会生效

1. 当设置了透明状态栏(StatusBar)时:

当为此activity设置了

true

//或者

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

}

//如果有以上两种情况之一,我们的状态栏(StatusBar)就会变成透明,并且布局会扩展到StatusBar的位置

同时,所有设置了android:fitsSystemWindows=”true”属性的view会自动添加一个值等于状态栏高度的paddingTop

2. 当设置了透明导航栏(NavigationBar)时:

当为此activity设置了:

true

//或者

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

}

//如果有以上两种情况之一,我们的导航栏(NavigationBar)就会变成透明,并且布局会扩展到NavigationBar的位置

同时,所有设置了android:fitsSystemWindows=”true”属性的view会自动添加一个值等于导航栏高度的paddingBottom

附加一个获取statusbar的和一个获取NavigationBar高度的java代码:

public float getStatusBarHeight() {

float result = 0;

int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");

if (resourceId > 0) {

result = getResources().getDimension(resourceId);

}

return result;

} //返回值就是状态栏的高度,得到的值是像素

public float getNavigationBarHeight() {

float result = 0;

int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");

if (resourceId > 0) {

result = getResources().getDimension(resourceId);

}

return result;

} //返回值就是导航栏的高度,得到的值是像素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值