问题标签 [android-elevation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5291 浏览

android - Android L 中的海拔在做什么?

今天我开发了我的第一个 Android L 应用程序,并阅读了 d.android.com/preview 提示。他们说 android:elevation 会显示阴影。但是看看这个:

我在模拟器中看不到任何阴影。我做错了什么还是模拟器有问题?我正在使用 Android Studio

0 投票
4 回答
12684 浏览

android - android:elevation 在 L 预览中不起作用

几天来我一直在玩 L 预览,似乎不起作用的一件事是android:elevation视图的属性。调用时它工作得很好View.setElevation(),但它似乎忽略了 XML 属性。我正在使用 Android Studio 0.8.2 并minSdkVersion设置targetSdkVersion'L',并compileSdkVersion设置为'android-L'. buildToolsVersion"20.0.0"。这是一个无法正常工作的示例布局:

这是结果的屏幕截图:imgur.com/mqeq9vK

根据android:elevation我的设置,底牌应该平放在“地面”上,但事实并非如此。事实上,它看起来和顶牌的海拔没有什么不同5dp。这是一个已知问题吗?它对您有用吗?

编辑:似乎CardView只有Buttons. 在这个布局中,我用 替换CardViewButton,即使阴影有点搞砸了(已知错误),您仍然可以看到高程的差异。

编辑 2:几乎可以确认此问题仅影响CardViewandroid:elevation适用于任何其他视图。有关为什么会发生这种情况的详细解释,请查看接受的答案。同时,我的解决方法是CardView用 a替换FrameLayout并设置android:background为可绘制对象。这是一个有效的卡片背景可绘制示例:

我也将此作为一个错误提交,所以如果它影响到你,请给这个问题加注星标。https://code.google.com/p/android-developer-preview/issues/detail?id=731

0 投票
1 回答
5947 浏览

android - Android 5.0 (Lollipop) 上的海拔不工作

我试图重现此处提供的 Google 海拔示例:

https://developer.android.com/training/material/shadows-clipping.html

但对我来说,没有阴影出现。不在 Android Studio 设计器中,不在 AVD 模拟器中。我正在使用所有最新版本的 Android Studio、SDK 和模拟器映像。

我错过了什么?

0 投票
2 回答
4673 浏览

android - 海拔属性不起作用android

嗨,我正在开发 android 应用程序,我正在尝试实现新的材料设计功能。我试图应用海拔属性,但它不适合我。我按以下方式尝试过。

它没有显示该图像的任何阴影。我做错什么了吗?需要一些帮助。谢谢你。

我也尝试过这种方式,但输出仍然没有变化。

0 投票
1 回答
1037 浏览

android - Android Lollipop 上的高程 + 透明度错误

在 API 21 上为具有一些 alpha(例如 #99fe0038)和一些高度的视图使用背景颜色会显示两个圆圈:一个用于视图本身,另一个用于内部:

高度和背景颜色通过代码设置:

没有设置高度或使用不透明颜色,一切看起来都像预期的那样。

是 Android 错误还是我在这里遗漏了什么?

0 投票
6 回答
97289 浏览

android - 在 Android 5.0 上的 AppCompat CardView 上以 XML 设置海拔

据我了解,在预览阶段的早期,似乎没有办法在CardView没有 Java 破解的情况下仅在 s 上设置 XML 的高度。现在正式发布了,有没有什么方法可以在 XML 中做到这一点而无需编写 Java 代码来设置海拔?

我试过card_view:cardElevation没有效果。当我使用 5.0 的模拟器时,我曾想过一切都很好。但是现在我在我的实际设备上使用正式版,我的所有CardViews都消失了

Pre Lollipop,效果很好。

这是我的完整xml

0 投票
2 回答
15829 浏览

android - 如何在所有Android版本上显示支持库的ActionBar&Toolbar的影子?

这是一个简单的问题:

我使用新的支持库,它允许我拥有一个 Toolbar 实例,甚至将其设置为活动的 actionBar(或使用默认的)。

如何自定义工具栏(或默认操作栏)投射的阴影?

我尝试使用“setElevation”(在他们两个上),但它似乎在 Android Lollipop 上没有做任何事情。

另外,我找不到如何自定义棒棒糖前版本的阴影。可能有一个API吗?或者至少是一个drawable(我没有找到,即使我试过了)?


好的,我设法找到了接下来的事情:

对于 Lollipop 和 pre-Lollipop,当您的活动使用正常的 AppCompat 主题(例如“Theme.AppCompat.Light”)时,阴影应该看起来不错。

但是,当您使用“setSupportActionBar”(并使用适当的主题,例如“Theme.AppCompat.Light.NoActionBar”)时,阴影会出现一些问题。

对于棒棒糖之前的版本,您可以在工具栏下方放置一个 FrameLayout,它看起来与用于普通主题的完全一样,如下所示:

您可以使用 FrameLayout 作为活动的内容,或者使用我所做的。您还可以通过将整数 0 设置为 pre-lollipop 并将 2 设置为 Lollipop 及更高版本来设置其可见性,就像我对“action_bar_shadow_background_visibility”所做的那样。

这是一个丑陋的解决方案,但它有效,但仅适用于棒棒糖之前的版本。

无论如何,如果我使用“setSupportActionBar”,我仍然找不到为 Lollipop 很好地显示阴影的方法。我尝试在工具栏和操作栏上使用“setElevation”(在调用“setSupportActionBar”之后使用“getSupportActionBar”)。

我也不知道如何获得 actionbar 的标准高度,因为我注意到很多教程都说要使用“minHeight”作为工具栏。对此也将不胜感激。

谁能帮我这个?

同样,为了清楚起见,这就是我要问的:

  • 对于 Pre-Lollipop,显示在工具栏和操作栏的支持库中使用的相同阴影。
  • Lollipop 也一样(但使用 Lollipop 的那个)
  • 额外:在 Lollipop 上自定义阴影更“精致”(可能在所有版本上自定义)。
  • 额外:为什么工具栏的 minHeight 得到的是操作栏高度的值,而不是高度本身?

编辑:好的,这是迄今为止我为模仿棒棒糖的影子所做的:

res/layout/toolbar_action_bar_shadow.xml

res/layout-v21/toolbar_action_bar_shadow.xml

res/drawable-v21/res/layout/msl__action_bar_shadow.xml

它不完全一样,但它是相似的。


编辑:我仍然不知道为什么会发生。我认为我在这个问题上写的代码具有误导性,因为要做的就是设置背景。然而在我正在测试的应用程序上它仍然没有帮助。我要修复的应用程序在导航抽屉上方有工具栏。

有一刻我认为这可能是因为我制作了一个自定义工具栏(从工具栏扩展)并且改变了它的 alpha 值(根据导航抽屉),但即使我使用普通工具栏并禁用所有相关的到 alpha,它仍然无法正常工作。此外,不仅如此,在一个全新的项目中,我尝试为工具栏设置半透明背景,并根据“setElevation”方法得到阴影。

现在我更难找到这个问题的原因,因为这似乎不是因为透明度,也不是因为自定义 Toolbar 类......

这是具有工具栏的活动的布局,以防万一这有任何帮助:

0 投票
22 回答
292597 浏览

android - Android“海拔”不显示阴影

我有一个 ListView,对于每个列表项,我希望它在它下面显示一个阴影。我正在使用 Android Lollipop 的新高度功能在要投射阴影的视图上设置 Z,并且已经使用 ActionBar(技术上是 Lollipop 中的工具栏)有效地执行此操作。我正在使用 Lollipop 的海拔,但由于某种原因,它没有在列表项下显示阴影。以下是每个列表项布局的设置方式:

但是,这是它显示列表项的方式,没有阴影: 在此处输入图像描述

我也尝试了以下方法无济于事:

  1. 将高度设置为 ImageView 和 TextViews 本身,而不是父布局。
  2. 为 ImageView 应用背景。
  3. 使用 TranslationZ 代替 Elevation。
0 投票
1 回答
8456 浏览

android - Android“海拔”没有在 CustomView 下显示阴影

我有一个在棒棒糖之前工作的 CustomView,现在我尝试在棒棒糖设备上应用android:elevationandroid:translateZ但似乎不起作用。

我错过了什么?

0 投票
5 回答
13054 浏览

android - 未显示 CardView 中 View 的 Android 高程

我想在 Android Lollipop 中提升的 CardView 中有一个 RelativeLayout,但未显示高度(未显示阴影):

在此处输入图像描述

我的布局文件:

所以在这个布局中,我在 RelativeLayout 中添加了这两行来制作高程:

有人知道为什么没有显示吗?目前,我使用 Android API 21 (Lollipop) 使用模拟器对其进行测试。