2016-05-01 127 views
1

我目前正試圖用協調佈局,以塌陷的圖像 - 在透明狀態欄中的主題 - ,但在三個問題都困擾着我:協調佈局和透明狀態欄

  1. 當活動是開始時,圖像沒有顯示在狀態欄的後面(如果我刪除了協調器佈局,它可以工作);
  2. 當我向上滾動時,我想將狀態欄更改爲純色,但圖像的一部分仍然顯示;
  3. 添加AppBarLayout和CollapsingToolbarLayout後,圖像的底部 - 與狀態欄的高度相同 - 剪切;

image below status bar - even though it is set to be transparent in the theme 圖像仍低於狀態欄 - 即使它被設置爲透明的主題倒塌後

Status bar after collapsing - it should have a solid color 狀態欄 - 它應該有一個純色

代碼:

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/colorPrimary" 
    android:orientation="vertical"> 

    <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" 
      android:fitsSystemWindows="true" 
      app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 
      app:statusBarScrim="@color/colorPrimary" 
      app:contentScrim="@color/colorPrimaryDark"> 

      <RelativeLayout 
       android:id="@+id/cover_wrapper" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/rsc_character_details_cover_height"> 

       <ImageView 
        android:id="@+id/cover" 
        android:layout_width="match_parent"     android:layout_height="@dimen/rsc_character_details_cover_height"/> 
      </RelativeLayout> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cover_wrapper" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:weightSum="6"> 

      ... 
     </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 
</android.support.design.widget.CoordinatorLayout> 

這是我如何設置狀態欄透明度:

<item name="android:windowTranslucentStatus">true</item> 

任何幫助將是非常讚賞。 非常感謝。

+1

這是因爲'CollapsingToolbarLayout'是爲了「工具欄」的包裝。 – tachyonflux

回答

2

對於圖像沒有顯示在狀態欄後面並被切斷的問題,應該在狀態欄區域顯示的任何內容應該有android:fitsSystemWindows="true"。即。您的cover_wrappercover

+0

就是這樣!非常感謝 –

+0

是不是相反?來自docs:android:fitsSystemWindows 布爾內部屬性可根據系統窗口(如狀態欄)調整視圖佈局。如果爲true,則調整此視圖的填充以爲系統窗口留出空間。 – GPack

+0

@GPack一些設計庫組件修改標誌的行爲https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec – tachyonflux