2

今天我更新了项目中的支持​​依赖项,发现新的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"
    ...

我也尝试过负值,但也没有。有什么方法可以解决棒棒糖之前的设备的这两个问题吗?

4

2 回答 2

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 子项之间的填充。

于 2014-10-18T13:48:39.207 回答
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>
于 2021-08-09T12:58:59.953 回答