折叠工具栏中的阴影/高程无法使用Recycler View?

时间:2017-12-20 17:17:19

标签: android android-recyclerview material-design

我正在研究Android课程的Udacity Material Design。

在“制作可滚动的Dinamic曲面”课程中,我将学习如何使用滚动来改变大小的动作栏。

但是这个例子适用于内容的ScrollView。 当我尝试使用RecyclerView时,我在操作栏和内容之间丢失了阴影效果。

我应该设置不同的东西吗? 感谢。

使用ScrollView和Recycler View的XML代码(已评论):

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="192dp"
    android:background="?colorPrimary">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:collapsedTitleTextAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
        app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
        app:expandedTitleMarginStart="72dp"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_collapseMode="parallax"
            android:scaleType="centerCrop"
            android:src="@drawable/glasses_dogs" />


        <android.support.v7.widget.Toolbar
            android:id="@+id/app_bar"
            android:layout_width="match_parent"
            android:layout_height="?actionBarSize"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:navigationIcon="@drawable/ic_arrow_back_black_24dp"
            app:contentInsetStart="72dp"
            app:layout_collapseMode="pin" />


    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>


<!--<android.support.v7.widget.RecyclerView-->
<!--android:id="@+id/main_home_list"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:nestedScrollingEnabled="true"-->
<!--app:layout_behavior="@string/appbar_scrolling_view_behavior" />-->

<ScrollView
    android:layout_width="match_parent"
    android:nestedScrollingEnabled="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_height="wrap_content">
    <TextView
        android:layout_marginTop="16dp"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Body1"
        android:text="@string/cupcake_ipsum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp" />
</ScrollView>
</android.support.design.widget.CoordinatorLayout >

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

在XML中,您可以添加Animator(最后一行)

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="210dp"
    android:background="@color/neah_screen_bg_white"
    android:stateListAnimator="@animator/appbar_always_elevated">

您可以在res / animator

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