Android Material Design - Как изменить цвет фона панели инструментов после CollapsingToolbarLayout рухнул
После того, как пользователь прокрутит экран вниз, изображение в CollapsingToolbarLayout исчезает и остается на панели инструментов с помощью кнопки "Назад", заголовка контента и настроек. Я хочу знать, как изменить цвет фона этой панели инструментов только тогда, когда он находится в состоянии "свалился".
Действие, о котором я говорю, похоже на это, когда цвет фона панели инструментов меняется на зеленый:
![enter image description here]()
Ниже CollapsingToolbarLayout У меня есть NestedScrollView с CardViews
Ответы
Ответ 1
Я думаю, что вы после app:contentScrim
.
<android.support.design.widget.CollapsingToolbarLayout
...
app:contentScrim="?attr/colorPrimary">
<!-- Toolbar and ImageView here -->
</android.support.design.widget.CollapsingToolbarLayout>
Ответ 2
Сначала удалите
app:contentScrim="?attr/colorPrimary">
из CollapsingToolbarLayout
Добавить библиотеку
compile 'com.android.support:palette-v7:23.2.1'
И добавьте ниже код в код Java
Bitmap bitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.ny);
Palette.generateAsync(bitmap,
new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
Palette.Swatch vibrant =
palette.getVibrantSwatch();
int mutedColor = palette.getVibrantSwatch().getRgb();
if (vibrant != null) {
// If we have a vibrant color
// update the title TextView
collapseToolbar.setBackgroundColor(mutedColor);
// mutedColor = palette.getMutedColor(R.attr.colorPrimary);
collapseToolbar.setStatusBarScrimColor(palette.getDarkMutedColor(mutedColor));
collapseToolbar.setContentScrimColor(palette.getMutedColor(mutedColor));
}
}
});
Ответ 3
Просто используйте атрибут CollapsingToolbarLayout
XML contentScrim
, чтобы установить цвет фона Toolbar
, когда он находится в режиме collapsed
.
app:contentScrim="YOUR_TOOLBAR_COLOR"
Вот пример:
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/img_group_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:id="@+id/anim_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>
Надеюсь, это поможет ~
Ответ 4
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.header);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
@SuppressWarnings("ResourceType")
@Override
public void onGenerated(Palette palette) {
Palette.Swatch vibrant =
palette.getVibrantSwatch();
if (vibrant != null) {
collapsingToolbar.setBackgroundColor(getResources().getColor(R.color.cpb_blue));
collapsingToolbar.setStatusBarScrimColor(getResources().getColor(R.color.cpb_blue));
collapsingToolbar.setContentScrimColor(getResources().getColor(R.color.cpb_blue));
}
}
});