1

我有这样一个CardView,但底部有一条白线,不应该有。任何想法可能会造成这种情况?如何修复CardView底部的意外白线Android

enter image description here

下面是代码!

<android.support.v7.widget.CardView 
     android:id="@+id/card_view" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="5" 
     app:cardCornerRadius="4dp" 
     android:layout_margin="5dp"> 
     <ListView 
      android:id="@+id/home_list_listview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:divider="@null" 
      android:dividerHeight="0dp" 
      android:drawSelectorOnTop="true" 
      android:orientation="vertical" 
      tools:listitem="@layout/home_list_item"/> 
    </android.support.v7.widget.CardView> 
+0

列表下面的表行中是否有更多行? – CommonsWare 2015-02-05 16:02:58

+0

nope。它只是一个由4个元素的数组适配器设置的列表视图。如果我切换到横向视图,我没有看到这条白线(我必须滚动才能看到横向上的所有4个项目) – ZakTaccardi 2015-02-05 16:05:27

+0

我以编程方式设置每个元素在列表视图中的高度。所以列表视图的总高度为4.我猜这个问题是,当listview的像素数不能被4整除时,我有一个额外的1-2像素没有着色。 – ZakTaccardi 2015-02-05 16:08:33

回答

0

我编程方式设置在ListView中每个元素的高度。所以列表视图的总高度为4.我猜这个问题是,当listview的像素数不能被4整除时,我有一个额外的1-2像素没有着色。

同意。

我建议不要使用ListView,而只是在垂直LinearLayout中有四行作为视图,每个权重为1以均匀分隔空间。

或者,调整您的尺寸计算以考虑剩余像素,根据需要将它们分配到行。

+0

谢谢!这是我原来的,但我不得不将其更改为一个ListView,以实现整个列表项目的连锁反应每个http://stackoverflow.com/a/28309358/891242 我也使用Gradle产品风格来构建这个应用程序有两种不同的方式(根据不同的风格,这个列表会有不同的项目/颜色/文本/图标#,所以有一个列表视图有助于这里:) – ZakTaccardi 2015-02-05 16:13:05

+0

@ user891242:波纹并没有真正绑定到ListView。 – CommonsWare 2015-02-05 16:20:08

+0

增加了尺寸计算,并且它工作得很好! 对于涟漪问题,我很难让包含imageview和textview的线性布局上出现涟漪,使用带有drawselectorontop的ListView为我做了诀窍。 – ZakTaccardi 2015-02-05 16:41:49

2

我认为这行是来自CardView compat的一个bug。如果将cardCornerRadius设置为0dp,则该行消失。此问题只发生在api上< 21.