我的屏幕上有3张垂直排列的卡片视图。卡的数量固定为3.卡的高度不同,因为它们的内容不同。我想平均分割卡片之间的间距,以便三张卡片平均占据整个屏幕空间而不是第三张卡片和屏幕底部之间的大空白空间,如下图所示(现在是我的屏幕) )。
我尝试在卡片视图之间提供Space元素如下,但它没有做任何事情:
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</Space>
我也尝试将 weightSum 添加到父线性布局无效。有没有办法做到这一点?
答案 0 :(得分:1)
如果要分割卡片之间的空格,可以尝试使用带有展开链的约束拉出法或在链内展开。 https://medium.com/@loutry/guide-to-constraintlayout-407cd87bc013
答案 1 :(得分:1)
你已经在那里了,但是不要使用Space,只需使用空视图来创建间距。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
答案 2 :(得分:0)
尝试使用此代码,我使用ConstraintLayout
:
导入lib:
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/card1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
app:cardBackgroundColor="@android:color/black"
app:layout_constraintBottom_toTopOf="@id/card2"
app:layout_constraintTop_toTopOf="parent">
<View
android:layout_width="match_parent"
android:layout_height="100dp" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/card2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
app:cardBackgroundColor="@android:color/holo_orange_dark"
app:layout_constraintBottom_toTopOf="@id/card3"
app:layout_constraintTop_toBottomOf="@+id/card1">
<View
android:layout_width="match_parent"
android:layout_height="200dp" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/card3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
app:cardBackgroundColor="@android:color/holo_blue_bright"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/card2">
<View
android:layout_width="match_parent"
android:layout_height="200dp" />
</android.support.v7.widget.CardView>
</android.support.constraint.ConstraintLayout>
所以你修复了3 CardView
:
wrap_content
ConstraintLayout
负责将间距拉平,以匹配我们设置的所有约束。但请确保您的内容不会太长,顶部和底部都会被剪掉。
结果: