Android材质devise – 折叠CollapsingToolbarLayout后如何更改工具栏的背景颜色

用户向下滚动屏幕后, CollapsingToolbarLayout中的图像消失,剩下一个带有后退button,内容标题和设置菜单的工具栏。 我想知道如何改变该工具栏的背景颜色,只有当它处于“折叠”状态。

我所指的操作与工具栏背景颜色变为绿色的操作类似:

在这里输入图像说明

CollapsingToolbarLayout下面我有一个NestedScrollViewCardViews

Solutions Collecting From Web of "Android材质devise – 折叠CollapsingToolbarLayout后如何更改工具栏的背景颜色"

我想你是在app:contentScrim

 <android.support.design.widget.CollapsingToolbarLayout ... app:contentScrim="?attr/colorPrimary"> <!-- Toolbar and ImageView here --> </android.support.design.widget.CollapsingToolbarLayout> 

先删除

 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)); } } }); 

只需使用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> 

希望这将有助于〜

  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)); } } });