Android CardView卡高度和阴影无法正常工作

时间:2016-11-14 11:34:22

标签: android android-layout android-recyclerview android-cardview

我在活动中使用CardView这套卡片。

运行应用程序时,我得到的不是预期的cardview:没有高程,没有阴影......

Android 7设备上的结果:

Android 7

代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_gravity="center"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="4dp"
    card_view:cardElevation="4dp"
    card_view:cardUseCompatPadding="true"
    android:layout_margin="8dp"
    android:gravity="center_horizontal"
    android:id="@+id/card_view"
    android:padding="10dp"
    android:layout_centerHorizontal="true"
    card_view:cardBackgroundColor="@color/main_color_grey_800">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="350.0dp"
            android:scaleType="centerCrop"
             />

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:padding="15.0dp"
            android:textColor="@android:color/black"
            android:textSize="16.0sp"
            android:text="@string/LoremText" />

        <TextView
            android:id="@+id/desc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:padding="15.0dp"
            android:textColor="@android:color/black"
            android:textSize="12.0sp"
            android:textAlignment="center"
            android:text="@string/LoremText" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="end"
            android:orientation="horizontal"
            android:paddingTop="10.0dip">

            <Button
                android:id="@+id/answer_1"
                android:layout_width="0px"
                android:layout_height="50.0dip"
                android:text="@string/Maybe"
                android:textColor="@color/white"
                android:background="@color/cpb_red"
                android:textSize="14sp"
                style="@style/DBTheme.Button.Orange"
                android:textStyle="bold"
                android:layout_weight="1"
                tools:ignore="ButtonStyle"
                android:visibility="gone" />

            <Button
                android:id="@+id/answer_2"
                style="@style/DBTheme.Button.Orange"
                android:layout_width="0px"
                android:layout_height="50.0dip"
                android:text="@string/yes_button"
                android:textColor="@android:color/white"
                android:textSize="14sp"
                android:textStyle="bold"
                android:background="@color/cpb_red"
                android:layout_weight="1"
                android:visibility="gone" />
            <Button
                android:id="@+id/answer_3"
                style="@style/DBTheme.Button.Orange"
                android:layout_width="0px"
                android:layout_height="50.0dip"
                android:layout_weight="1.0"
                android:textStyle="bold"
                android:text="@string/no_button"
                android:textColor="@color/white"
                android:background="@color/cpb_red"
                android:textSize="14sp"
                android:visibility="gone" />
        </LinearLayout>
    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="4.0dp"
        android:background="@drawable/shadow" />
</android.support.v7.widget.CardView>

关于如何解决这个问题的任何想法?谢谢:))

4 个答案:

答案 0 :(得分:15)

在挖掘,播放和修改布局后,我甚至创建了一个新项目并在当前项目中添加了相同的代码我得到了不同的结果xD,结果发现问题是由android:hardwareAccelerated="false"引起的。 AndroidManifest.xml file.Just将该属性的值设置为true,你就可以了。

答案 1 :(得分:2)

  

使用此代码解决您的问题

<android.support.v7.widget.CardView
            android:id="@+id/cardview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:elevation="5dp"
            card_view:cardBackgroundColor="@color/cardview_initial_background"
            card_view:cardCornerRadius="8dp"
            android:layout_marginLeft="@dimen/margin_large"
            android:layout_marginRight="@dimen/margin_large"
            >

答案 2 :(得分:1)

在XML文件中使用它

load("nashorn:mozilla_compat.js")
var wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser, 15)
WDS.browser.get('http://example.com')

function Invoker(obj) {
    return new JSAdapter() {
        __has__: function(name) {
            return true;
        },
        __get__: function(name) {
            return function() {
                return obj.invoke(name, arguments);
            }
        }
    }
}

var r = {
    invoke: function(name, args) {
        return WDS.browser.executeScript("return document.readyState") == 'complete'
    }
};
wait.until(new JavaAdapter(org.openqa.selenium.support.ui.ExpectedCondition, Invoker(r)))

答案 3 :(得分:0)

要显示高程阴影,需要一些余量。只需添加layout_margin="<some_value>"即可完美。