我正在使用cardviews,但问题是我的CardView没有显示任何高程或阴影。我已经尝试了一些stackoverflow答案中建议的方法,就像我尝试过使用高程和阴影属性一样。我也尝试过使用card_view:cardUseCompatPadding =" true",但没有任何成功。这是我的xml文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/tools"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
app:cardBackgroundColor="#FAFBFD"
app:cardElevation="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/post_profile_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher"
android:layout_marginLeft="12dp"
android:layout_marginTop="12dp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/post_profile_image"
android:layout_marginLeft="12dp"
android:orientation="vertical"
android:layout_marginTop="16dp">
<TextView
android:id="@+id/post_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000"/>
<TextView
android:id="@+id/post_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="Time"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/grayColor"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_delete"
android:id="@+id/post_delete_btn"
android:visibility="invisible"/>
</LinearLayout>
</RelativeLayout>
<ImageView
android:id="@+id/post_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
android:adjustViewBounds="true"
android:background="#00ffffff"
android:src="@drawable/add_btn"
android:visibility="gone"/>
<TextView
android:id="@+id/post_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginLeft="12dp"
android:text="Text about Posting...."
android:textAppearance="?android:attr/textAppearanceMedium"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginBottom="8dp">
<ImageButton
android:id="@+id/like_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:background="#00ffffff"
android:src="@drawable/grey_like_bt"/>
<TextView
android:id="@+id/post_like_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginTop="8dp"
android:text="0 Likes"
android:textColor="#2196F3"/>
<ImageButton
android:id="@+id/comment_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:background="#00ffffff"
android:src="@drawable/comment_btn_gray"/>
<TextView
android:id="@+id/post_comment_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginTop="8dp"
android:text="0 Comments"
android:textColor="#2196F3"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:drawable/ic_menu_edit"
android:visibility="invisible"
android:id="@+id/post_edit_btn"
android:layout_alignParentRight="true"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
不知道为什么它没有显示任何高度和阴影
答案 0 :(得分:53)
不要忘记绘制阴影必须使用hardwareAccelerated drawing
<application android:hardwareAccelerated="true" ...>
查看详情 Keeps and Breaks
答案 1 :(得分:21)
<android.support.v7.widget.CardView android:id="@+id/item_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardCornerRadius="2dp"
app:cardUseCompatPadding="true"
app:cardElevation="2dp"
app:cardBackgroundColor="@color/md_white_1000"
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true">
</android.support.v7.widget.CardView>
答案 2 :(得分:5)
如果您的清单文件有android:hardwareAccelerated="false"
行,请将其删除。
答案 3 :(得分:3)
很多好的答案,但有时只有一个并不能解决所有问题。 这是经过很多环顾后为我工作的人,
将此行添加到您的CardView
app:cardUseCompatPadding="true"
所以您的卡片视图如下
<androidx.cardview.widget.CardView
android:id="@+id/cardView"
android:layout_width="match_parent"
app:cardUseCompatPadding="true"/>
希望有效!编码愉快!
答案 4 :(得分:2)
答案是cardView及其父级的边距和填充的组合。
试试这样:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.2/css/bootstrap.css" rel="stylesheet" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<div class="background-tile" id="backimg">
<div class="box" id="myDiv" style="padding : 50px 50px 10px 50px;width : 45%;border-radius: 5px; background-color : #476870">
<div id="quotebox">
<i class="fa fa-quote-left" style="font-size:40px;margin-left : 8px "></i>
<span id="quote"></span>
<p id=a uthorbox>-<span id="author"></span>
<p>
</div>
<button class="button quotebutton" id="btnAnimate">get quote</button>
<button class=" share button fa fa-facebook" id="facebook"></button>
<button class=" share button fa fa-twitter" id="tweet" style=" margin-right: 25px;"></button>
</div>
</div>
答案 5 :(得分:2)
您缺少两件事。
AndroidManifest.xml
标记中检查项目的Application
文件 <application android:hardwareAccelerated="true" ...>
代替
<application android:hardwareAccelerated="false" ...>
第二个是,检查布局文件的父标记是否如下面的行所示。
,如果您想使用app:
xmlns。然后写 :
xmlns:app="http://schemas.android.com/apk/res-auto"
,如果您想使用card_view:
xmlns。然后写 :
xmlns:card_view="http://schemas.android.com/apk/res-auto"
注意:您无需同时编写两者。因为它给您重复属性错误。
要了解更多信息,请参见:https://stackoverflow.com/a/56206240/7832102
当您使用res-auto
的属性时,上一行最重要。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp"
app:cardElevation="4dp" />
</RelativeLayout>
答案 6 :(得分:1)
你应该试试这个:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
app:cardElevation="3dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
<!--Put your other fields between this-->
</android.support.v7.widget.CardView>
答案 7 :(得分:1)
如果卡片视图有 父视图,尝试为父布局设置背景颜色,例如 #EDEDED 颜色,除了白色之外的任何颜色。这也会让卡片和背景有明显的区别。
input
android:background="#EDEDED" 在父布局上 有所作为。
答案 8 :(得分:1)
有两件事帮助我解决了这个问题:
在清单的应用标签中进行设置:
android:hardwareAccelerated="false"
文件>使缓存无效并重新启动
答案 9 :(得分:1)
试试这个
<android.support.v7.widget.CardView
android:id="@+id/driverCurrentJobsCardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dim_8"
android:background="#ffffff"
app:cardCornerRadius="4dp"
card_view:cardElevation="4dp"/>
确保您在gradle中使用此依赖项
compile 'com.android.support:cardview-v7:23.2.1'
答案 10 :(得分:0)
显然,我使用 Theme.AppCompat 而不是 Theme.MaterialComponents 作为我的 AppTheme。
<style name="Theme.Main" parent="Theme.MaterialComponents.NoActionBar">
</style>
在您的布局中,使用 MaterialCardView 而不是 CardView
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
app:cardElevation="10dp">
答案 11 :(得分:0)
尝试将android:outlineProvider="bounds"
添加到CardView布局。
答案 12 :(得分:0)
<android.support.design.card.MaterialCardView 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"
xmlns:card_view="http://schemas.android.com/tools"
app:cardCornerRadius="@dimen/_5sdp"
card_view:cardCornerRadius="3dp"
android:layout_margin="@dimen/_3sdp"
card_view:cardElevation="10dp"
card_view:cardUseCompatPadding="true"></android.support.design.card.MaterialCardView>
使用上面的代码,不要忘记使用 * android:hardwareAccelerated =“ true” * 。它肯定会工作。
答案 13 :(得分:0)
从AndroidManifest.xml
android:hardwareAccelerated="false"
答案 14 :(得分:0)
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="10dp"
app:cardCornerRadius="4dp"
app:cardBackgroundColor="#ffff8800">
......
</android.support.v7.widget.CardView>
首先删除背景颜色,添加高程,然后再添加背景。为我工作,虽然我通过布局设计师添加了背景。
答案 15 :(得分:0)
在CardView小部件中添加此行
app:cardElevation="5dp"
希望这会有所帮助!
答案 16 :(得分:0)
尝试将其放在rootview中:
xmlns:card_view="http://schemas.android.com/apk/res-auto"
并使用此代码进行提升:
card_view:cardElevation="10dp"
答案 17 :(得分:0)
在cardView中使用它来显示阴影:
app:cardElevation="4dp"
app:cardMaxElevation="4dp"
答案 18 :(得分:-1)
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@android:color/white"
android:foreground="?android:attr/selectableItemBackground"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/padding_small"
android:layout_marginBottom="@dimen/padding_small"
app:cardCornerRadius="4dp"
app:cardElevation="4dp" >
</android.support.v7.widget.CardView>