应用启动时看不到CardView Elevation

CardView Elevation cannot be seen when the app starts

我正在制作一个应用程序,其中将在卡片视图中有一个列表视图。下面是 XML 代码。我想使用海拔高度,所以我做到了。但它没有用。所以我在这里查看了一些问题的答案。我尝试了其中的大部分,包括依赖项,使用 compatPadding 和 hardwareAccelerated = "true"。但是当我 运行 我的红米 5 手机上的应用程序时,列表视图可以完美显示,但是看不到卡片下方的 CardView Elevation 或阴影,只是一条正常的线。我在下面的listView布局中有什么错误吗XML(不是主要的activity XML):

    <android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools"
    android:id="@+id/cardViewMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorAccent"
    android:layout_margin="8dp"
    card_view:cardCornerRadius="3dp"
    card_view:cardElevation="16dp"
    card_view:cardUseCompatPadding="true">

        <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


            <ImageView
                android:id="@+id/ivMain"
                android:layout_width="352dp"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_marginStart="6dp"
                android:layout_marginLeft="6dp"
                android:layout_marginTop="13dp"
                android:layout_marginEnd="8dp"
                app:srcCompat="@drawable/dhaka" />

            <TextView
                android:id="@+id/tvMain"
                android:layout_width="365dp"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_marginStart="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="144dp"
                android:layout_marginEnd="9dp"
                android:layout_marginRight="9dp"
                android:fontFamily="@font/audiowide"
                android:text="TextView"
                android:textAllCaps="true"
                android:textColor="@color/blue"
                android:textSize="22sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/tvDesc"
                android:layout_width="342dp"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/tvMain"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_marginStart="3dp"
                android:layout_marginLeft="13dp"
                android:layout_marginTop="183dp"
                android:layout_marginEnd="11dp"
                android:fontFamily="@font/aldrich"
                android:text="TextView"
                android:textAllCaps="false"
                android:textColor="@color/colorPrimary"
                android:textSize="18sp"
                android:textStyle="italic" />

        </RelativeLayout>

    </android.support.v7.widget.CardView>

依赖关系:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso- 
    core:3.0.2'
    implementation 'com.android.support:cardview-v7:28.0.0'
}

如果您需要 activity_main.xml 文件代码,请告诉我。谢谢

删除它 `app:cardElevation="@dimen/size_3" 并使用 app:cardElevation="@dimen/size_3"

 <android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools"
    android:id="@+id/cardViewMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorAccent"
    android:layout_margin="8dp"
    card_view:cardCornerRadius="3dp"
    card_view:cardElevation="16dp"
    card_view:cardUseCompatPadding="true">

        <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


            <ImageView
                android:id="@+id/ivMain"
                android:layout_width="352dp"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_marginStart="6dp"
                android:layout_marginLeft="6dp"
                android:layout_marginTop="13dp"
                android:layout_marginEnd="8dp"
                app:srcCompat="@drawable/dhaka" />

            <TextView
                android:id="@+id/tvMain"
                android:layout_width="365dp"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_marginStart="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="144dp"
                android:layout_marginEnd="9dp"
                android:layout_marginRight="9dp"
                android:fontFamily="@font/audiowide"
                android:text="TextView"
                android:textAllCaps="true"
                android:textColor="@color/blue"
                android:textSize="22sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/tvDesc"
                android:layout_width="342dp"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/tvMain"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_marginStart="3dp"
                android:layout_marginLeft="13dp"
                android:layout_marginTop="183dp"
                android:layout_marginEnd="11dp"
                android:fontFamily="@font/aldrich"
                android:text="TextView"
                android:textAllCaps="false"
                android:textColor="@color/colorPrimary"
                android:textSize="18sp"
                android:textStyle="italic" />

        </RelativeLayout>

    </android.support.v7.widget.CardView>

尝试使用 android:translationZ="5dp" 制作海拔效果。 :)

解法:

虽然你的布局在我的笔记本电脑上运行得很好。 (下面附上一张图片)

您可以尝试以下解决方案之一:

解决方案1:

让你的hardwareAccelerated = "false"在你的Manifest.xml虽然,这不是必需的在大多数情况下。 (我没有添加它,仍然有效)

解决方案2:

应用一定的边距作为: android:layout_margin="4dp" 因为有时你有海拔但它似乎没有出现因为它隐藏在

解法3:

确保你有 res-auto 架构 xmlns:card_view="http://schemas.android.com/apk/res-auto" 用于 cardview 的提升

解4:

如果上述解决方案中的 none 适合您,最后尝试添加以下两个依赖项:

implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'

我认为,给定的解决方案之一必须有效。

但是,按照我对您程序的看法,对您来说,Solution3 应该可行。所以,

替换为:

xmlns:card_view="http://schemas.android.com/tools"

有了这个:

xmlns:card_view="http://schemas.android.com/apk/res-auto"

您也可以在您的cardviewxml中将cardview替换为app,如下所示:

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools"
    android:id="@+id/cardViewMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorAccent"
    android:layout_margin="8dp"
    app:cardCornerRadius="3dp"
    app:cardElevation="16dp"
    app:cardUseCompatPadding="true">

    ........ 

</android.support.v7.widget.CardView>

我希望其中一种方法对您有用。