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

时间:2016-03-25 16:47:20

标签: android android-5.1.1-lollipop

我正在开发一个应用程序,需要应用底部对话框,所以我将 android.supppcom.android.support:design:23.1.1 更新为 com.android.support:设计:23.2.1 即可。一切都很好,但这就是问题所在。

  1. 状态栏的默认高度比正常宽(例如,如果默认值为10dp,则现在高度为30dp)。
  2. 预览在Android工作室的预览中是可以的。
  3. 我不知道它是如何工作的,所以任何人都可以帮助我。请找到gradle信息。 感谢

    <userTask id="usertask1" name="Login" activiti:assignee="Darshan">
        <extensionElements>
            <activiti:taskListener event="create" class="MyEventListener" />
            <activiti:eventListener class="MyEventListener" />
        </extensionElements>
    </userTask>
    

    enter image description here

       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'
    
        }
    

    enter image description here

    上面添加的是活动视图的XML代码,它在应用程序启动时启动。此活动的中心有一个framelayout。该framelayout显示片段,表示fragmentA。以下是此片段的XML视图代码。

        <?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>
    

2 个答案:

答案 0 :(得分:1)

一般来说,您应该假设状态栏的固定高度(特别是在各个制造商定位旧设备时)。我曾经这样做并后悔:p AFAIK a ScrimInsetsFrameLayout(或类似)是这里的方法,请参阅https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/ScrimInsetsFrameLayout.java

答案 1 :(得分:1)

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

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

    android:fitsSystemWindows="true"

将此参数更改为false:

    android:fitsSystemWindows="false"

坦率地说,我不知道为什么这不适用于新的库23.2.1,但它在23.1.1版本中工作正常。

希望这会有所帮助。

由于

普拉巴卡尔