2016-11-30 78 views
0

我有一個典型的問題,因爲Android棒棒糖。但我已經嘗試了一切。 我有這樣的佈局:Recyclerview內容後面的導航欄

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:openDrawer="start" 
    android:fitsSystemWindows="true" 
    > 

    <include 
     layout="@layout/activity_main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/nav_header_activity_main" 
     app:itemTextColor="@color/nav_selected" 
     app:itemIconTint="@color/nav_selected" 
     app:menu="@menu/activity_main_drawer" 
     > 
    </android.support.design.widget.NavigationView> 


    <android.support.design.widget.NavigationView 
     android:id="@+id/filter_nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="end" 
     app:itemTextColor="@color/nav_selected" 
     app:itemIconTint="@color/nav_selected" 
     app:menu="@menu/activity_consoles_drawer" 
     > 
    </android.support.design.widget.NavigationView> 

</android.support.v4.widget.DrawerLayout> 

activity_main_content我有這樣的:

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/rootlayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.robinstrutz.gamereleases.Activities.Activity_Main"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 
     <android.support.v7.widget.Toolbar 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:background="?attr/colorPrimary" 
      android:elevation="3dp" 
      > 
     </android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     /> 

    <ProgressBar 
     android:id="@+id/loading_bar" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:progressDrawable="@drawable/progress_drawable" 
     android:indeterminate="true" 
     android:layout_gravity="bottom" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/settings_fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_settings_white_24dp" 
     android:layout_gravity="center_horizontal|bottom" 
     android:layout_margin="10dp" 
     app:backgroundTint="@color/colorAccent" 
     android:tint="@color/colorPrimary" 
     app:borderWidth="0dp" 
     app:elevation="3dp" 
     android:transitionName="fab" 
     android:stateListAnimator="@animator/raise" 
     /> 

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

在我的代碼我在做一個典型的初始化一個RecyclerView並沒有什麼改變窗口的設置/功能或其他。所以現在我的RecyclerView的內容將進入導航欄後面的屏幕底部。我已經嘗試過使用fitSystemWindowsclipToPaddingclipToChildren

我認爲我的風格帶來了這種失敗,但它的外觀它不:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:windowBackground">@color/background</item> 


    <item name="android:fontFamily">sans-serif-medium</item> 
    <item name="android:textSize">14sp</item> 
    <item name="android:fontFeatureSettings">smcp, onum</item> 
    <item name="android:letterSpacing">0.02</item> 

</style> 

任何建議如何解決這一問題而無需添加layout_marginBottomRecyclerView?由於不同設備上導航欄的高度差異。

+1

'android:fitsSystemWindows =「false」'CoordinatorLayout'裏面會有幫助嗎? –

+0

你能提供快照嗎? – SAM

+0

@R.Zagórski沒有修復它 – Muffin

回答

1

這可能是因爲在設置Toolbar時使用了app:layout_scrollFlags="scroll|enterAlways"。 啓用此設置後,工具欄下方的佈局高度會大於設備上可見的佈局高度。它包含一些額外的功能,以便在工具欄向上滾動時平滑滾動。

如果您的活動/片段不需要滾動內容,修復方法是簡單地刪除'滾動'標誌(app:layout_scrollFlags="enterAlways")。