Подтвердить что ты не робот

Android Material Design - Как изменить цвет фона панели инструментов после CollapsingToolbarLayout рухнул

После того, как пользователь прокрутит экран вниз, изображение в CollapsingToolbarLayout исчезает и остается на панели инструментов с помощью кнопки "Назад", заголовка контента и настроек. Я хочу знать, как изменить цвет фона этой панели инструментов только тогда, когда он находится в состоянии "свалился".

Действие, о котором я говорю, похоже на это, когда цвет фона панели инструментов меняется на зеленый:

enter image description here

Ниже CollapsingToolbarLayout У меня есть NestedScrollView с CardViews

4b9b3361

Ответ 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));

            }
        }

    });