将库升级到 android 23.2.1 后,状态栏的默认高度显示不正确

Default height of status bar is not showing properly after upgrade library to android 23.2.1

我正在开发一个应用程序,需要应用底页对话框,所以我将 android.supppcom.android.support:design:23.1.1 更新为 com.android.support:设计:23.2.1。一切正常,但问题来了。

  1. 状态栏的默认高度比正常宽(假设默认为 10dp 现在高度为 30dp)。
  2. 在Android工作室的预览中预览就可以了。

我不知道它是如何工作的,所以任何人都可以帮助我 this.Please 找到 gradle 信息。 谢谢

   dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.inkapplications.viewpageindicator:library:2.4.3'
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
compile 'commons-codec:commons-codec:1.9'
// compile 'com.android.support:multidex:1.0.0'
    compile 'com.codesnippets4all:quick-json:1.0.4'
   //    compile 'javax.persistence:persistence-api:1.0'
  //    compile 'com.android.support:design:23.1.1'
      compile 'com.android.support:design:23.2.1'
  //    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:cardview-v7:23.2.1'
   //    compile 'com.android.support:recyclerview-v7:23.1.1'
   compile 'com.android.support:recyclerview-v7:23.2.1'
   //    compile 'com.android.support:appcompat-v7:23.1.1'
   compile 'com.android.support:appcompat-v7:23.2.1'
   //    compile 'com.android.support:support-v4:23.1.1'
   compile 'com.android.support:support-v4:23.2.1'

    }

    <?xml version="1.0" encoding="utf-8"?>
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
     <android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">
     <android.support.v7.widget.Toolbar
        android:id="@+id/toolbarAppHome"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />
      </android.support.design.widget.AppBarLayout>
     <FrameLayout
    android:id="@+id/frag_placeholder"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">
    </FrameLayout>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:background="@color/colorPrimaryDark"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/tab_home"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center_vertical|center_horizontal"
        android:layout_height="match_parent">
        <ImageView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_home_white_24dp"/>
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lable"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/tab_tournament"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center_vertical|center_horizontal"
        android:layout_height="match_parent">
        <ImageView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_group_white_24dp"/>
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lable"/>

    </LinearLayout>
    <LinearLayout
        android:id="@+id/tab_team"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center_vertical|center_horizontal"
        android:layout_height="match_parent">

        <ImageView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_group_work_white_24dp"/>
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lable"/>

    </LinearLayout>
    <LinearLayout
        android:id="@+id/tab_notification"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center_vertical|center_horizontal"
        android:layout_height="match_parent">

        <ImageView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_notifications_white_24dp"/>
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Lable"/>

    </LinearLayout>

</LinearLayout>

上面添加的是 activity 视图的 XML 代码,它在应用程序启动时启动。这个 activity 在中心有一个框架布局。该框架布局显示一个片段说 fragmentA。这是此片段的 XML 查看代码。

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:background="#F8F8FF">


   <android.support.v7.widget.RecyclerView

    android:id="@+id/appHomeRecycleView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

   </android.support.v7.widget.RecyclerView>

   <android.support.design.widget.FloatingActionButton
    android:id="@+id/xyz1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="16dp"
    android:scaleType="center"
    android:src="@drawable/ic_mode_edit_white_24dp" />

    </android.support.design.widget.CoordinatorLayout>

一般来说,您应该假定状态栏的高度是固定的(尤其是针对不同制造商的旧设备时)。我曾经这样做并后悔 :p AFAIK ScrimInsetsFrameLayout(或类似的)是去这里的方式,见https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java

感谢您的回复。我研究了 10 多个小时,终于找到了解决方案。这是解决方案:

在fragmentA布局里面可以看到一个参数XML文件:

    android:fitsSystemWindows="true"

将此参数更改为 false 为:

    android:fitsSystemWindows="false"

坦率地说,我不明白为什么这不适用于新库 23.2.1,但它在 23.1.1 版本中运行良好。

希望这对其他人有所帮助。

谢谢

普拉巴卡