Android AppCompat 21提升

Eli*_*zer 74 android android-view material-design

有没有办法View在前棒棒糖设备中添加高程而不将它们包裹在CardView

Der*_*Jan 74

ViewCompat.setElevation(View, int) 目前没有垫片.

现在模拟高程的唯一方法是在v21之前应用阴影.定义您的样式/布局/可绘制values并覆盖它values-v21.对于按钮我使用样式覆盖.对于布局,我通常去参考覆盖(用于@null摆脱drawable).

希望将来对支持库的更新将增加填充程序.

这个reddit线程跟踪所述更新.

编辑

新的支持设计库实际上为浮动操作按钮创建了填充程序.

  • @DanielWilson垫片是一种解决方法(http://en.wikipedia.org/wiki/Shim_(computing)).由于阴影在5.0中是原生的,因此需要<5.0的垫片 (6认同)
  • 这仍然无法正常工作吗?到底什么是“垫片”:)? (3认同)

thi*_*olr 64

这是一个如何Toolbar在棒棒糖前设备上添加阴影的示例:

在此输入图像描述

布局应该是这样的:

<RelativeLayout
    android:id="@+id/toolbar_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:animateLayoutChanges="true"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

    <View
        android:id="@+id/toolbar_shadow"
        android:layout_width="match_parent"
        android:layout_height="@dimen/toolbar_shadow"
        android:layout_below="@id/toolbar"
        android:background="@drawable/toolbar_dropshadow" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

阴影是:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="#88444444"
        android:startColor="@android:color/transparent" />

</shape>
Run Code Online (Sandbox Code Playgroud)

  • 它是阴影的大小,值越高,工具栏越"高" (2认同)

Ran*_*mar 47

我用相同的效果,

  android:background="@android:drawable/dialog_holo_light_frame"
Run Code Online (Sandbox Code Playgroud)

我测试的输出:

在此输入图像描述

参考 - /sf/answers/1797820391/

更新:如果你想改变这个drawable的颜色,请尝试@Irfan回答

/sf/answers/2857116111/