2016-05-01 3 views
1

В настоящее время я пытаюсь использовать макет координатора для того, чтобы свернуть изображение - в теме с прозрачной панелью состояния -, однако три вопрос беспокоит меня:координатор раскладка и прозрачный статус бар

  1. Когда активность началось, изображение не отображается за строкой состояния (если я удалю координатор, то он работает);
  2. Когда я прокручиваю вверх, я хотел бы изменить строку состояния на сплошной цвет, но фрагмент изображения остается показом;
  3. После добавления AppBarLayout и CollapsingToolbarЗакройте нижнюю часть изображения - с той же высотой строки состояния - получите разрез;

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' предназначен для оболочки' Toolbar'. – tachyonflux

ответ

2

Для устранения проблем с изображением, не отображаемым за строкой состояния и отключением, все, что должно отображаться в области строки состояния, должно быть android:fitsSystemWindows="true". то есть. ваш cover_wrapper и cover.

+0

Вот и все! Большое спасибо –

+0

Не наоборот? From docs: android: fitsSystemWindows Булевой внутренний атрибут для настройки макета представления на основе системных окон, таких как строка состояния. Если значение true, отрегулируйте прописку этого вида, чтобы оставить пространство для системных окон. – GPack

+0

@GPack некоторые компоненты библиотеки дизайна изменяют поведение флага https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec – tachyonflux

Смежные вопросы