我是Android新手,这是我在这里的第一个问题。
我尝试在cardview的开头添加一个彩色的垂直边框。我怎样在xml上实现呢?我尝试用空的textview添加它,但是它把整个cardview本身弄乱了。例如,请检查下面的图片链接。
活动_主要.xml
<android.support.v7.widget.CardView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
card_view:contentPadding="16dp"
card_view:cardElevation="2dp"
card_view:cardCornerRadius="5dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/Base.TextAppearance.AppCompat.Headline"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title" />
<TextView
style="@style/Base.TextAppearance.AppCompat.Body1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Content here" />
</LinearLayout>
</android.support.v7.widget.CardView>
多谢了
9条答案
按热度按时间z5btuh9x1#
从物料设计更新开始,支持
app:strokeColor
,也支持app:strokeWidth
. see more要使用材料设计更新。添加以下代码到
build.gradle
(:app)并将
CardView
更改为MaterialCardView
6psbrbz92#
试着做:
这将从cardview中删除填充,并添加一个带有颜色的FrameLayout。2然后您需要在LinearLayout中修复填充,然后在其他字段中修复填充
如果您想保留卡圆角半径,请在drawable文件夹中创建card_edge.xml:
在帧布局中使用
android:background="@drawable/card_edge"
izj3ouym3#
由于公认的答案要求您添加一个框架布局,这里你可以如何做它与材料设计。
如果尚未添加,请添加此内容
现在将卡片视图更改为材料卡片视图
现在您需要将Activity主题更改为Theme.Material。如果您使用的是Theme.Appcompact,我建议您在将来的项目中使用Theme.Material,以便在您的应用中有更好的材料设计。
llmtgqce4#
我认为这个解决方案可能效率不高,但它服务于目的,并增加了与边框宽度的灵活性。
hgqdbh6s5#
CardView
扩展了FrameLayout,支持foreground
属性,使用foreground
属性也可以方便的添加边框。布局如下:
bg_roundrect_ripple_light_border.xml
aor9mmx16#
我的解决方案:
创建一个文件卡片视图边界. xml
并以编程方式设置
pcrecxhr7#
我想改进阿米特提出的解决方案。我利用给定的资源,而不添加额外的
shapes
或Views
。我给CardView
一个背景色,然后嵌套布局,白色叠印但与一些leftMargin
...6ovsh4lw8#
我通过在一个相对布局中放置两个CardView来解决这个问题。一个用边框颜色作为背景,另一个用图像。(或者你想用的任何东西)
注意添加到顶部的边距,并开始第二个CardView。在我的情况下,我决定使用2DP厚边框。
blmhpbnm9#
您可以将
<androidx.cardview.widget.CardView
与android:foreground="@drawable/black_border"
一起保留黑色边框: