CardView не показывает высоту тени
Я работаю с cardviews, но проблема в том, что мой CardView не показывает никакой высоты или тени. Я уже пробовал некоторые из методов, предложенных в ответах stackoverflow, как я пробовал использовать свойство elevation и shadow. Я также попытался использовать 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>
Не знаю, почему он не показывает никакой высоты и тени
12 ответов
Не забывайте, что для рисования тени необходимо использовать hardwareAccelerated drawing
<application android:hardwareAccelerated="true" ...>
посмотреть подробнее https://developer.android.com/guide/topics/graphics/hardware-accel.html?hl=ru
<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>
ответ представляет собой комбинацию полей и отступов cardView и его родителя.
попробуйте так:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/minimum_dimem"
android:layout_marginLeft="@dimen/default_margin"
android:layout_marginRight="@dimen/default_margin"
android:layout_marginTop="@dimen/minimum_dimem"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/cardview_radius"
app:cardElevation="@dimen/cardview_default_elevation">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/ten_dimem">
...
</RelativeLayout>
</android.support.v7.widget.CardView>
вы должны попробовать это:
<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>
используйте это внутри cardView, чтобы показать тень:
app:cardElevation="4dp"
app:cardMaxElevation="4dp"
Попробуйте поместить это в свой rootview:
xmlns:card_view="http://schemas.android.com/apk/res-auto"
и использовать этот код для высоты:
card_view:cardElevation="10dp"
<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>
Сначала удалите цвет фона, добавьте высоту, а затем снова добавьте фон. Сработало для меня, хотя я добавил фон через дизайнера макета.
попробуй такое
<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'
<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>