折りたたみツールバー レイアウトに関するChris Bane の Cheesesquare サンプル アプリケーションをいじってみましたが、折りたたみツールバーのタイトルの後ろにグラデーションを追加するのに問題があり、背景が明るい場合でもタイトルが読みやすいままです。
ここで、これを何らかの方法で処理する1つのソリューションを見てきました。
そのソリューションは、折りたたみツールバーの下部ではなく、画像自体にグラデーションを「添付」します。下にスクロールすると、視差が見えなくなるため、画像とともにグラデーションが消えます。ツールバーが折りたたまれるときにグラデーションをツールバーに追従させたい(そして視差効果を維持したい)。
この短いビデオで問題が明確になります: https://vid.me/J225
activity_contact_detail.xml
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="@dimen/detail_backdrop_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_collapseMode="parallax">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/woman"/>
<View
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:layout_gravity="bottom"
android:background="@drawable/backdrop_bg"/>
</FrameLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
...
<View
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@drawable/backdrop_bg"
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom"/>
background_bg.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="#0000"
android:startColor="#303F9F"
android:type="linear"/>
<corners android:radius="0dp"/>
</shape>
どんな助けでも大歓迎です!