今天我更新了项目中的支持依赖项,我发现新的CardView
存在一些问题。
以前的版本:
compile 'com.android.support:cardview-v7:21.0.0-rc1@aar'
当前版本:
compile 'com.android.support:cardview-v7:21.0.0@aar'
首先看起来minHeight
不再起作用了。其中一个解决方案是将任何ViewGroup
放入卡中并设置最小高度,但对我来说这看起来像是一个错误。
我的第二个问题是填充。随着新的库释放填充更大。如果你把一些卡片放在一起,那么它们之间的差距会很大。我已经尝试将填充设置为0dp
,但看起来填充来自9.png
文件。下面粘贴的代码不会改变任何内容。
<android.support.v7.widget.CardView
android:padding="0dp"
...
我也尝试过负值,但也没有。有没有办法解决前Lollipop设备的这两个问题?
答案 0 :(得分:7)
关于填充内容,您可以在此处获得新信息:http://developer.android.com/reference/android/support/v7/widget/CardView.html
在L之前,CardView会在其内容中添加填充并绘制阴影 那个地区。此填充量等于maxCardElevation +(1 - cos45)*两侧的cornerRadius和maxCardElevation * 1.5 +(1 - cos45)* cornerRadius在顶部和底部。
由于填充用于偏移阴影的内容,因此无法设置 在CardView上填充。相反,您可以使用内容填充属性 在XML或setContentPadding(int,int,int,int)中设置代码 在Card的边缘和CardView的孩子之间填充。
答案 1 :(得分:0)
我遇到了类似的问题,我设法解决了这个问题:
<androidx.cardview.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"
android:layout_marginHorizontal="@dimen/space_small"
app:contentPadding="@dimen/space_small"
app:cardCornerRadius="@dimen/space_mirror"
app:cardElevation="2dp"
app:cardUseCompatPadding="true" >
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/items_wrapper"
android:minHeight="80dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
.....
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>