我有Constraint Layout
。目标是将两个recyclerview
堆叠在一起。我使用Constraint Layout
的原因是因为我还希望TextView
占据与底部recyclerview
相同的空间。 (当TextView
底部没有内容时,我会以编程方式将recyclerview
设置为可见。
这是布局:
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="250dp"
android:background="@color/heart_red"
tools:context=".MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/tabRecyclerView"
android:layout_width="0dp"
android:layout_height="50dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toTopOf="@id/imageRecyclerView"
app:layout_constraintTop_toTopOf="parent" />
<android.support.v7.widget.RecyclerView
android:id="@+id/imageRecyclerView"
android:layout_width="0dp"
android:layout_height="200dp"
android:background="@color/lightshade"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="@id/tabRecyclerView" />
</android.support.constraint.ConstraintLayout>
此外,这是我imageRecyclerView
中
<?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="wrap_content"
android:layout_height="match_parent"
android:background="@color/darkshade">
<ImageView
android:id="@+id/itemImage"
android:adjustViewBounds="true"
android:scaleType="fitStart"
android:layout_width="wrap_content"
android:layout_height="150dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/itemFavoriteButton"/>
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
android:id="@+id/itemProgressBar"
android:indeterminate="true"
android:layout_width="wrap_content"
android:layout_height="150dp"
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/itemFavoriteButton"/>
<ToggleButton
android:id="@+id/itemFavoriteButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/ic_favorite"
android:textOff=""
android:textOn=""
android:text=""
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/itemImage"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
但是,出于某种原因,Constraint Layout
底部有一个红条,如下所示:
据我所知,从数学上讲,一切都会检验出来。那么为什么我的布局底部会出现一个红条呢?
答案 0 :(得分:2)
你正试图将recyclerviews叠加在一起,对吗?
目前,您无法将tabRecyclerView和imageRecyclerView的高度相加,因为它们相互重叠。
查看
父级布局高度为250dp
tabRecyclerView为50dp
app:layout_constraintTop_toTopOf="@id/tabRecyclerView"
,它的重叠tabRecyclerView)修复
更改
app:layout_constraintTop_toTopOf="@id/tabRecyclerView"
到
app:layout_constraintTop_toBottomOf="@id/tabRecyclerView"