我的活动请求布局为全屏:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
并在xml布局中设置 fitsSystemWindows 属性以填充状态栏高度:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- The main content view -->
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:contentScrim="@color/actionbar_title_color"
android:fitsSystemWindows="true">
使用appcompat-v7:23.2.1
编译,它在API21设备上运行良好,但在API16设备上未应用填充。任何提示?
更新
Bounty on: 为什么API16设备上没有应用填充?
答案 0 :(得分:-1)
来自官方文件Android development pattern
在KitKat及以下,您的自定义视图可以覆盖
fitSystemWindows()
并提供您想要的任何功能 - 只需 如果您已经使用了insets则返回true,如果您愿意,则返回false 给其他意见一个机会。然而,在Lollipop及更高版本的设备上,我们提供了一些新的API 使自定义此行为更容易和一致 视图的其他行为。你会改写 onApplyWindowInsets(),允许View根据需要使用尽可能多的内容,并且可以调用 dispatchApplyWindowInsets()根据需要在子视图上显示。
如果只是你,你甚至不需要继承你的视图 在Lollipop上需要自定义行为,您可以使用更高级别的自定义行为
ViewCompat.setOnApplyWindowInsetsListener()
,将会给出 优先于View的onApplyWindowInsets()
。 ViewCompat也 提供调用onApplyWindowInsets()
和的dispatchApplyWindowInsets()
的辅助方法if(API < Kitkat){ fitSystemWindows() }else if(API > Lollipop){ onApplyWindowInsets() }
没有版本检查。
现在,你需要检查条件,使用哪个api级别,并根据应用条件,如
$("#amount").prev("label").remove();
请查看this answer了解详情。