应用启动时无法看到CardView海拔高度

时间:2018-10-04 13:26:27

标签: android android-cardview

我正在制作一个应用,在卡片视图中将有一个列表视图。下面是XML代码。我想使用高程,所以我做了。但这没有用。所以我在这里看了一些问题的答案。我使用compatPadding和hardwareAccelerated =“ true”尝试了其中的大多数,包括依赖项。但是,当我在Redmi 5 mobile中运行该应用程序时,可以很好地显示listview,但是看不到CardView高度或卡下的阴影,只是一条正常的线。我在下面的listView布局XML(不是主要活动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文件代码,请告诉我。谢谢

3 个答案:

答案 0 :(得分:0)

将其删除`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>

答案 1 :(得分:0)

解决方案:

尽管您的布局在我的笔记本电脑上工作正常。 (在下面附上图片)

enter image description here

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

解决方案1:

将您的 hardwareAccelerated = "false" 放入您的 Manifest.xml 尽管如此,但在大多数情况下并非必需。 (我没有在我的机器上添加它,但仍然可以使用)

解决方案2:

将某些边距应用为: android:layout_margin="4dp" 因为有时您有高程,但由于隐藏在高处而似乎没有出现

解决方案3:

确保您具有 res-auto 模式 xmlns:card_view="http://schemas.android.com/apk/res-auto" 用于显示卡视图的高度

解决方案4:

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

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"

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

<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>

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

答案 2 :(得分:-1)

尝试使用 android:translationZ="5dp"以产生高程效果。 :)