2016-02-17 3 views
8

У меня есть CollapsingToolbar в качестве родительского элемента, на мой взгляд, который выглядит, как показано ниже:EdgeEffect на AppBarLayout

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:tools="http://schemas.android.com/tools" 
    style="@style/XmatchYmatch" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/appbar_image_height" 
     android:fitsSystemWindows="true" 
     android:transitionName="@string/shared_element_anim_name" 
     android:background="@color/red"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      style="@style/XmatchYmatch" 
      android:minHeight="0dp" 
      app:statusBarScrim="@color/translucent_black" 
      app:expandedTitleTextAppearance="@android:color/transparent" 
      android:fitsSystemWindows="true" 
      app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"> 

      <RelativeLayout 
       android:id="@+id/toolbar_content_parent" 
       style="@style/XmatchYmatch" 
       android:fitsSystemWindows="true" 
       app:layout_collapseMode="parallax" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

       <ImageView 
        android:id="@+id/toolbar_iv" 
        style="@style/XmatchYmatch" 
        android:scaleType="centerCrop" 
        tools:ignore="ContentDescription"/> 

       <TextView 
        android:id="@+id/toolbar_title" 
        style="@style/ImageText.Title" 
        android:layout_alignParentBottom="true" 
        android:maxLines="2"/> 

       <TextView 
        android:id="@+id/toolbar_dm" 
        style="@style/ImageText.Subtitle" 
        android:layout_above="@id/toolbar_title" 
        android:maxLines="2"/> 
      </RelativeLayout> 

      <include 
       android:id="@+id/toolbar" 
       layout="@layout/toolbar"/> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     style="@style/XmatchYmatch"> 

    <LinearLayout 
     android:id="@+id/section_parent" 
     style="@style/XmatchYmatch.Vert" 
     android:animateLayoutChanges="true"/> 
</android.support.v4.widget.NestedScrollView> 

    <FrameLayout 
     style="@style/XmatchYwrap" 
     android:background="@color/dark_red" 
     app:layout_anchor="@id/detail_fragment" 
     app:layout_anchorGravity="bottom|right|end"> 

     <Button 
      android:id="@+id/button" 
      style="@style/Subhead" 
      android:layout_width="match_parent" 
      android:background="?android:attr/selectableItemBackground" 
      android:text="@string/button_text" 
      android:textColor="@android:color/white"/> 

     <ProgressBar 
      android:id="@+id/sign_progress" 
      style="@style/ProgressBar" 
      android:layout_gravity="center" 
      android:visibility="gone"/> 
    </FrameLayout> 

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

У меня есть эффект края ниже Toolbar, когда я прокручиваю весь путь к вершине. Как это:

enter image description here

Но я хочу краевой эффект будет ниже StatusBar. Как это:

enter image description here

Как я должен идти об этом?

EDIT: Я попытался сделать NestedScrollView моим родителем, и он работает. Но это не то, как я хочу, чтобы моя иерархия была.

+0

Попробуйте это: общественное applyKitKatTranslucency недействительным (INT цвет) { если (Utils.hasKitKat()) { если (mTintManager == NULL) mTintManager = новый SystemBarTintManager (это); mTintManager.setStatusBarTintEnabled (true); mTintManager.setStatusBarTintColor (цвет); } getSupportActionBar(). SetBackgroundDrawable (новый ColorDrawable (цвет)); } –

+1

Можете ли вы уточнить, что вы подразумеваете под эффектом края? Я понятия не имею, что вы имеете в виду. :) –

+0

@jmols, когда вы перескакиваете на RecyclerView или NestedScrollView, вы видите эффект, как видно на рис. I. Добавлено (красный снимок ниже фотографии в первом рисунке), и его трудно увидеть во второй картинке, серый эффект ниже строки состояния. – Nerd

ответ

0

Вы можете пытаться изменить цвет вашего краевого эффекта в вашем AppTheme, добавив следующую строку

<item name="android:colorEdgeEffect">@color/my_color</item>

Надежда это помогает.

+0

Это не то, что задает вопрос. Я хочу, чтобы EdgeEffect выполнялся из-под StatusBar, а не AppBarLayout, как это происходит со мной. – Nerd

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