【问题标题】:Shadow not showing on Androidx CardviewAndroidx Cardview 上未显示阴影
【发布时间】:2019-05-13 09:36:02
【问题描述】:

我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    tools:context=".TurnOnLocation">

    <LinearLayout
        android:id="@+id/requires_location"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@id/turn_on_location">
        <androidx.cardview.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            card_view:cardCornerRadius="4dp"
            app:cardElevation="10dp"
            app:cardPreventCornerOverlap="false">
            <TextView
                android:id="@+id/info_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingTop="10dp"
                android:paddingBottom="10dp"
                android:paddingStart="60dp"
                android:paddingEnd="60dp"
                android:textSize="28sp"
                android:text="test"
                android:textColor="@color/colorPrimary"
                android:textAlignment="center"
                android:background="@color/colorPrimaryDark" />

        </androidx.cardview.widget.CardView>
    </LinearLayout>

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/turn_on_location"
        android:textColor="@color/colorPrimary"
        android:textSize="@dimen/medium_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/turn_on_location"
        app:layout_constraintTop_toBottomOf="@id/requires_location"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

我指定了app:cardElevation="10dp",我认为它是用来渲染投影的。然而没有影子出现。

知道为什么吗?

【问题讨论】:

  • 添加app:cardUseCompatPadding="true"
  • 不添加阴影。它还阻止我水平填充 0:i.imgur.com/ab3Uo1l.png
  • 在您的清单部分添加android:hardwareAccelerated="false"。
  • 需要保证金android:layout_margin="5dp"
  • 两者都添加了 - 仍然没有阴影。

标签: android xml android-cardview


【解决方案1】:

您的源代码没有错误。阴影应该被正确渲染。您可能正在检查布局预览中的输出。它在渲染上有一些问题。请在模拟器或真机上运行应用。

【讨论】:

    【解决方案2】:

    将此行添加到您的AndroidManifestandroid:hardwareAccelerated="true"application 标记中

    【讨论】:

      【解决方案3】:

      使用此代码,对我来说它的作品!这个想法在app:cardUserCompatPadding="true"

      <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:background="@android:color/transparent"
          app:cardElevation="4dp"
          app:cardUseCompatPadding="true"
          app:cardCornerRadius="4dp"
          android:layout_marginVertical="@dimen/two_x"
          app:cardBackgroundColor="@color/white">
      

      结果

      【讨论】:

        【解决方案4】:

        将下面几行添加到 CardView 标签中

          card_view:cardBackgroundColor="@android:color/white"
          card_view:cardElevation="2dp"
          card_view:cardUseCompatPadding="true"
        

        【讨论】:

        【解决方案5】:

        试试这个

        <androidx.cardview.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                card_view:cardCornerRadius="4dp"
                app:cardElevation="10dp"
                android:layout_margin="16dp">
        </androidx.cardview.widget.CardView
        

        【讨论】:

        • 仍然没有影子。
        • 您是否在预览版、模拟器或移动设备中观看?因为它不会在预览中显示任何高程。它只会在你运行应用程序时显示
        • 我在我的 Pixel 2 模拟器中观看
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-10
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 2018-08-11
        • 2020-11-16
        • 1970-01-01
        相关资源
        最近更新 更多