Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


CollapsingToolbarLayout sin sombra en estado expandido

CollapsingToolbarLayout de appcompat muestra la sombra en estado colapsado, pero cuando se expande (o se expande en el proceso) desaparece la sombra

Mi código de ejemplo https://github.com/NaikSoftware/CollapsingToolbarWithImageAndTabs/tree/master/app

Diseño

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="ua.naiksoftware.hidetabs.MainActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="@dimen/toolbar_plus_tabs" app:contentScrim="@android:color/transparent" app:layout_scrollFlags="scroll|exitUntilCollapsed|snap|enterAlways" app:titleEnabled="false" app:toolbarId="@+id/toolbar_wrapper"> <ImageView android:id="@+id/appbar_background" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/header_back" app:layout_collapseMode="parallax"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" android:background="@android:color/transparent" app:popupTheme="@style/AppTheme.PopupOverlay" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar_wrapper" android:layout_width="match_parent" android:layout_gravity="bottom" android:background="@android:color/transparent" android:layout_height="wrap_content" android:minHeight="@dimen/tab_layout_height"> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" app:tabGravity="fill" app:tabIndicatorColor="@android:color/white" app:tabMode="scrollable" app:tabSelectedTextColor="@android:color/white" /> </android.support.v7.widget.Toolbar> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_add_black_24dp" android:layout_margin="@dimen/fab_margin" android:tint="@android:color/white" android:layout_gravity="bottom|end" app:elevation="@dimen/fab_elevation" app:layout_behavior="ua.naiksoftware.hidetabs.FabSlidingBehavior"/> 

Derrumbado Estado colapsado

Expandido Estado ampliado

2 Solutions collect form web for “CollapsingToolbarLayout sin sombra en estado expandido”

Tuve el mismo problema y encontré una solución:

Primero tienes que actualizar a la última biblioteca de soporte (uso 24.1.0)

A continuación, aplique el stateListAnimator a su AppBarLayout:

ejemplo:

 <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="320dp" android:stateListAnimator="@drawable/appbar_always_elevated" android:fitsSystemWindows="true"> 

Y utilizar este xml como animador:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <objectAnimator android:propertyName="elevation" android:valueTo="8dp" android:valueType="floatType" android:duration="1"/> </item> </selector> 

Puede encontrar oficial stateListAnimator para AppBarLayout aquí

1. Ponga este appbar_elevation.xml en el directorio de recursos llamado animator-v21

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" tools:ignore="PrivateResource"> <item> <objectAnimator android:propertyName="elevation" android:valueTo="@dimen/design_appbar_elevation" android:valueType="floatType" /> </item> </selector> 

2. En AppBarLayout set android:stateListAnimator="@animator/appbar_elevation"

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.