当前位置: 首页 > 知识库问答 >
问题:

AndroidLollipop上的标高不起作用

淳于兴朝
2023-03-14

我试图在最新的AndroidLollipop预览版本中使用elevation属性。我将targetSdk设置为21,将主题设置为Material。接下来,我在TextView中添加了一个背景形状,并将标高设置为8dp,但TextView没有显示任何阴影迹象。这是在运行Lollipop预览的Nexus7上。我还有什么要考虑的吗?

布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@drawable/rect"
      android:text="hallo world"
      android:padding="8dp"
      android:elevation="8dp" />

</LinearLayout>

这是可绘制的背景:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
    <solid android:color="#7d0073ff" />
    <corners android:radius="16dp" />
</shape>

以下是文本视图:

共有3个答案

和弘博
2023-03-14

将android:立面阴影添加到ImageView:

android:clipToPadding="false"
+
android:outlineProvider="bounds"
+
android:elevation="2dp"
苏鹏鹍
2023-03-14

在再次查看文档之后,我终于找到了解决方案。

只需将card\u view:cardUseCompatPadding=“true”添加到您的CardView中,Lollipop设备上就会出现阴影。

结果是,CardView中的内容区域在pre-lollipop和lollipop设备上采用不同的大小。因此,在Lollipop设备中,阴影实际上被卡所覆盖,因此不可见。通过添加此属性,内容区域在所有设备上保持不变,阴影变得可见。

我的xml代码是这样的:

<android.support.v7.widget.CardView
    android:id="@+id/media_card_view"
    android:layout_width="match_parent"
    android:layout_height="130dp"
    card_view:cardBackgroundColor="@android:color/white"
    card_view:cardElevation="2sp"
    card_view:cardUseCompatPadding="true"
    >
...
</android.support.v7.widget.CardView>
司徒志
2023-03-14

出于某种原因,如果将纯色设置为透明度,则不会显示立面阴影。

在您的示例中,我将#7d0073ff更改为#0073ff,并得到一个阴影。

这可能是一个bug,因为在他们的文档中,它给出了一个使用半透明背景色的类似示例。

 类似资料:
  • 问题内容: 我尝试设置标签,但没有成功。为什么不? 问题答案: 您将身高设置为100%,但是100%是什么?它始终是该元素的父级,因此父级的高度设置为什么?如果未将其设置为任何值,则浏览器没有任何参考。

  • 问题内容: 将div高度设置为0px似乎无效。 div展开以显示其内容,我们如何防止这种情况发生? 问题答案: 如果您 真的 想确定它没有高度,可以使用以下方法: 如果您在IE上仍然遇到问题,也可以添加 在针对IE的样式表中添加了条件注释。这将触发IE中的hasLayout属性。 并且display:none与将其设置为零高度不同。只需查看各种clearfix解决方案,以解决 不 从流程中删除它的

  • 我创建了一个使用FocusListener的应用程序,以确保文本fieid的值始终为正数。当用户输入负值,然后单击“tab”键将焦点从文本字段移开时,该值将乘以-1,以使结果值为正。但是,当我运行应用程序时,文本字段没有更改。我不确定我做错了什么,并会感谢任何帮助。 以下是我的代码: }

  • 问题内容: 我已经测试了elasticsearch突出显示字段功能,并且工作正常。我使用了 elasticsearch2.4.4 和 spring-data- elasticsearch-2.0.0.RELEASE 我最近将 elasticsearch 升级到 5.5.0 和 spring-data-elasticsearch-3.0.0.M4 当我测试相同的代码时,突出显示不会发生 下面是示例代

  • 问题内容: 我正在使用Under JS,但li onclick在IE8浏览器上无法使用。 jsfiddle链接: http://jsfiddle.net/sudheera/DUZ3B/14/ HTML JS 请建议 问题答案: IE8和更早版本没有,但是它们确实有其非标准的前身。他们不是 很 一样。 这是一个使用可用功能的“挂钩此事件”功能: 然后,您将在示例中使用它: 请注意,它如何在使用的浏览

  • 我在谷歌设计应用程序栏指南中看到了扩展高度应用程序栏。我如何在Android Lollipop中实现这些?