【问题标题】:Shadow/Elevation from Collapse Tool Bar Don'tWork With Recycler View?折叠工具栏的阴影/高程不适用于 Recyclerview?
【发布时间】:2017-12-20 17:17:18
【问题描述】:

我正在学习 Udacity Material Design for Android 课程。

在“制作可滚动动态表面”课程中,我学习了如何制作一个随着滚动而改变大小的操作栏。

但此示例适用于内容的 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 >

【问题讨论】:

  • 你的组件有背景色吗?如果组件具有背景颜色,我认为 elevation 可以工作。
  • @WilliamBertan 他们有,甚至是一个有两种布局(标题+内容)的适配器。如果我记得很清楚,应该有背景的是提升的,以防万一
  • 你能把你的布局xml添加到问题中吗?
  • @WilliamBertan 我刚刚添加。谢谢您的帮助。如果您需要这个问题(未回答:'()我有用于回收站视图的布局适配器的代码stackoverflow.com/questions/47732585/…
  • 你的elevation标签在哪里?

标签: android android-recyclerview material-design


【解决方案1】:

我找到了解决方案。

在您的 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>

【讨论】:

    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2023-03-15
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多