为什么我的 android constraintLayout 丢失了文本视图的底行?
Why is my android constraintLayout losing its bottom row of textviews?
我正在尝试将此布局用作列表视图中的 header,但内部约束布局下方的文本视图的底行不可见 - 就像它的高度已折叠为零。
在 xml 内部约束布局声明下面有一条红线,上面有一条弹出消息 "This view is not constrained vertically: at runtime it will jump to the left unless you add a vertical constraint..."(跳到左边?这有意义吗?)并且我尝试添加垂直约束,例如
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
但是整个布局失去了高度。
当设计编辑在没有询问或警告我的情况下更改我的 xml 时,我也感到非常困惑。它似乎很喜欢将 layout_width 和高度元素设置为“0dp”,并将指南宽度和高度设置为
android:layout_width="wrap_content"
android:layout_height="wrap_content"
。
当唯一的元素是文本视图的底行时,我没有设置 layout_width 和 layout_height,因为约束似乎起作用了。但现在我已经添加了顶部 "leaderinfo",设计师将它们添加为“0dp”。我知道我可以将它们重置为 "wrap_content",然后文本视图将重新出现,但为什么这是必要的 - 设计师将它们设置为“0dp”不是有充分的理由吗?
感谢您的帮助!
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/listheaderbg"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/leaderinfo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="@color/subsection1background"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="8dp">
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
app:layout_constraintStart_toStartOf="@+id/guideline01"
android:id="@+id/iv_profilepic"
android:src="@drawable/ic_flag"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="2dp"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_username"
tools:text="@string/username"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toEndOf="@+id/iv_profilepic"
app:layout_constraintTop_toTopOf="@+id/iv_profilepic"
tools:layout_editor_absoluteX="150dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_firstname"
tools:text="@string/first_name"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:layout_marginTop="5dp"
app:layout_constraintStart_toEndOf="@+id/iv_profilepic"
app:layout_constraintTop_toBottomOf="@+id/tv_username"
tools:layout_editor_absoluteX="150dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_lastname"
tools:text="@string/last_name"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:layout_marginTop="5dp"
app:layout_constraintStart_toEndOf="@+id/iv_profilepic"
app:layout_constraintTop_toBottomOf="@+id/tv_firstname"
tools:layout_editor_absoluteX="150dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:elevation="0dp"
app:elevation="0dp"
app:fabSize="mini"
android:layout_marginTop="20dp"
app:layout_constraintEnd_toStartOf="@+id/guideline04"
app:srcCompat="@android:drawable/ic_input_add"
app:layout_constraintTop_toTopOf="parent"
android:tint="#FFFFFF"
app:backgroundTint="@color/submitbuttoncolor_hotpink"
tools:layout_editor_absoluteX="351dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/guideline01"
android:id="@+id/iv_weight"
android:src="@drawable/ic_scale"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/iv_profilepic"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_weight"
tools:text="@string/_225"
android:padding="5dp"
app:layout_constraintStart_toEndOf="@+id/iv_weight"
app:layout_constraintTop_toTopOf="@+id/iv_weight"
app:layout_constraintBottom_toBottomOf="@+id/iv_weight"
tools:layout_editor_absoluteX="62dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/guideline02"
android:id="@+id/iv_height"
android:src="@drawable/ic_height"
app:layout_constraintTop_toTopOf="@+id/iv_weight"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="206dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_height"
tools:text="@string/_0_0"
app:layout_constraintStart_toEndOf="@+id/iv_height"
app:layout_constraintTop_toTopOf="@+id/iv_height"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_height"
tools:layout_editor_absoluteX="248dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/guideline01"
android:id="@+id/iv_age"
android:src="@drawable/ic_age"
app:layout_constraintTop_toBottomOf="@+id/tv_weight"
android:layout_marginTop="10dp"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_age"
tools:text="23"
app:layout_constraintStart_toEndOf="@+id/iv_age"
app:layout_constraintTop_toTopOf="@+id/iv_age"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_age"
tools:layout_editor_absoluteX="62dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/guideline02"
android:id="@+id/iv_country"
android:src="@drawable/ic_flag"
app:layout_constraintTop_toTopOf="@+id/iv_age"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="206dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_country"
tools:text="CA"
app:layout_constraintStart_toEndOf="@+id/iv_country"
app:layout_constraintTop_toTopOf="@+id/iv_country"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_country"
tools:layout_editor_absoluteX="248dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv_followers"
android:src="@drawable/ic_followers"
app:layout_constraintStart_toStartOf="@+id/guideline01"
app:layout_constraintTop_toBottomOf="@+id/tv_age"
android:layout_marginTop="10dp"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_followers"
tools:text="223"
app:layout_constraintStart_toEndOf="@+id/iv_followers"
app:layout_constraintTop_toTopOf="@+id/iv_followers"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_followers"
tools:layout_editor_absoluteX="62dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline01"
app:layout_constraintGuide_percent="0.05"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="21dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline02"
app:layout_constraintGuide_percent="0.5"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="206dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline03"
app:layout_constraintGuide_percent="0.69"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="284dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline04"
app:layout_constraintGuide_percent="0.95"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="391dp" />
</android.support.constraint.ConstraintLayout>
<TextView
android:id="@+id/text1"
style="@style/MyTextView"
android:gravity="center"
android:text="@string/exercise"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/listheaderbg"
android:layout_height="0dp"
android:layout_width="0dp" />
<TextView
style="@style/MyTextView"
app:layout_constraintStart_toEndOf="@+id/guideline1"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
android:gravity="center"
android:text="@string/rm1"
android:id="@+id/text2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/listheaderbg"
android:layout_height="0dp"
android:layout_width="0dp"
tools:layout_editor_absoluteX="213dp" />
<TextView
style="@style/MyTextView"
app:layout_constraintStart_toEndOf="@+id/guideline2"
app:layout_constraintEnd_toEndOf="parent"
android:gravity="center"
android:text="@string/rm1bw"
android:id="@+id/text3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/listheaderbg"
android:layout_height="0dp"
android:layout_width="0dp"
tools:layout_editor_absoluteX="310dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/guideline3"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/iv_rank"
android:src="@drawable/ic_rank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:visibility="gone"
android:background="@color/listheaderbg"
tools:layout_editor_absoluteX="376dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline1"
app:layout_constraintGuide_percent="0.44"
android:orientation="vertical"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="181dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline2"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.71"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="292dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline3"
app:layout_constraintGuide_percent="0.83"
android:orientation="vertical"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="341dp" />
第一个关于内部布局需要垂直约束的问题,你只需要像这样约束顶部:
app:layout_constraintTop_toTopOf="parent"
底部不需要限制,因为高度是 wrap_content
。
关于底部的文本视图,你有外部约束布局wrap_content
,所以如果文本视图也有wrap_content
的高度,那么布局可以确定适当的大小外部容器是内部约束布局的高度 + 文本视图的高度。
但是如果text views设置为0dp
也就是匹配constraints,那么就存在无法解析的依赖。换句话说,文本视图的高度大小取决于外部约束布局(匹配约束)的大小,但外部约束布局的大小取决于其内容的大小,其中包括文本视图的高度但在不知道其容器大小的情况下无法确定。不可能两者兼而有之,所以设计师试图通过您提到的更改来帮助您摆脱这种困境。
底线是仅约束内部布局的顶部并指定文本视图的高度大小。如果您进行了这些更改,那么它应该会起作用。
我正在尝试将此布局用作列表视图中的 header,但内部约束布局下方的文本视图的底行不可见 - 就像它的高度已折叠为零。
在 xml 内部约束布局声明下面有一条红线,上面有一条弹出消息 "This view is not constrained vertically: at runtime it will jump to the left unless you add a vertical constraint..."(跳到左边?这有意义吗?)并且我尝试添加垂直约束,例如
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
但是整个布局失去了高度。
当设计编辑在没有询问或警告我的情况下更改我的 xml 时,我也感到非常困惑。它似乎很喜欢将 layout_width 和高度元素设置为“0dp”,并将指南宽度和高度设置为
android:layout_width="wrap_content"
android:layout_height="wrap_content"
。
当唯一的元素是文本视图的底行时,我没有设置 layout_width 和 layout_height,因为约束似乎起作用了。但现在我已经添加了顶部 "leaderinfo",设计师将它们添加为“0dp”。我知道我可以将它们重置为 "wrap_content",然后文本视图将重新出现,但为什么这是必要的 - 设计师将它们设置为“0dp”不是有充分的理由吗?
感谢您的帮助!
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/listheaderbg"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/leaderinfo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="@color/subsection1background"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="8dp">
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
app:layout_constraintStart_toStartOf="@+id/guideline01"
android:id="@+id/iv_profilepic"
android:src="@drawable/ic_flag"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="2dp"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_username"
tools:text="@string/username"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toEndOf="@+id/iv_profilepic"
app:layout_constraintTop_toTopOf="@+id/iv_profilepic"
tools:layout_editor_absoluteX="150dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_firstname"
tools:text="@string/first_name"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:layout_marginTop="5dp"
app:layout_constraintStart_toEndOf="@+id/iv_profilepic"
app:layout_constraintTop_toBottomOf="@+id/tv_username"
tools:layout_editor_absoluteX="150dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_lastname"
tools:text="@string/last_name"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:layout_marginTop="5dp"
app:layout_constraintStart_toEndOf="@+id/iv_profilepic"
app:layout_constraintTop_toBottomOf="@+id/tv_firstname"
tools:layout_editor_absoluteX="150dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:elevation="0dp"
app:elevation="0dp"
app:fabSize="mini"
android:layout_marginTop="20dp"
app:layout_constraintEnd_toStartOf="@+id/guideline04"
app:srcCompat="@android:drawable/ic_input_add"
app:layout_constraintTop_toTopOf="parent"
android:tint="#FFFFFF"
app:backgroundTint="@color/submitbuttoncolor_hotpink"
tools:layout_editor_absoluteX="351dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/guideline01"
android:id="@+id/iv_weight"
android:src="@drawable/ic_scale"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/iv_profilepic"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_weight"
tools:text="@string/_225"
android:padding="5dp"
app:layout_constraintStart_toEndOf="@+id/iv_weight"
app:layout_constraintTop_toTopOf="@+id/iv_weight"
app:layout_constraintBottom_toBottomOf="@+id/iv_weight"
tools:layout_editor_absoluteX="62dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/guideline02"
android:id="@+id/iv_height"
android:src="@drawable/ic_height"
app:layout_constraintTop_toTopOf="@+id/iv_weight"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="206dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_height"
tools:text="@string/_0_0"
app:layout_constraintStart_toEndOf="@+id/iv_height"
app:layout_constraintTop_toTopOf="@+id/iv_height"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_height"
tools:layout_editor_absoluteX="248dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/guideline01"
android:id="@+id/iv_age"
android:src="@drawable/ic_age"
app:layout_constraintTop_toBottomOf="@+id/tv_weight"
android:layout_marginTop="10dp"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_age"
tools:text="23"
app:layout_constraintStart_toEndOf="@+id/iv_age"
app:layout_constraintTop_toTopOf="@+id/iv_age"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_age"
tools:layout_editor_absoluteX="62dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/guideline02"
android:id="@+id/iv_country"
android:src="@drawable/ic_flag"
app:layout_constraintTop_toTopOf="@+id/iv_age"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="206dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_country"
tools:text="CA"
app:layout_constraintStart_toEndOf="@+id/iv_country"
app:layout_constraintTop_toTopOf="@+id/iv_country"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_country"
tools:layout_editor_absoluteX="248dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv_followers"
android:src="@drawable/ic_followers"
app:layout_constraintStart_toStartOf="@+id/guideline01"
app:layout_constraintTop_toBottomOf="@+id/tv_age"
android:layout_marginTop="10dp"
android:tint="@color/tealicon"
tools:layout_editor_absoluteX="21dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyTextView.thin"
android:id="@+id/tv_followers"
tools:text="223"
app:layout_constraintStart_toEndOf="@+id/iv_followers"
app:layout_constraintTop_toTopOf="@+id/iv_followers"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="@+id/iv_followers"
tools:layout_editor_absoluteX="62dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline01"
app:layout_constraintGuide_percent="0.05"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="21dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline02"
app:layout_constraintGuide_percent="0.5"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="206dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline03"
app:layout_constraintGuide_percent="0.69"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="284dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline04"
app:layout_constraintGuide_percent="0.95"
android:orientation="vertical"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="391dp" />
</android.support.constraint.ConstraintLayout>
<TextView
android:id="@+id/text1"
style="@style/MyTextView"
android:gravity="center"
android:text="@string/exercise"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/listheaderbg"
android:layout_height="0dp"
android:layout_width="0dp" />
<TextView
style="@style/MyTextView"
app:layout_constraintStart_toEndOf="@+id/guideline1"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
android:gravity="center"
android:text="@string/rm1"
android:id="@+id/text2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/listheaderbg"
android:layout_height="0dp"
android:layout_width="0dp"
tools:layout_editor_absoluteX="213dp" />
<TextView
style="@style/MyTextView"
app:layout_constraintStart_toEndOf="@+id/guideline2"
app:layout_constraintEnd_toEndOf="parent"
android:gravity="center"
android:text="@string/rm1bw"
android:id="@+id/text3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="@color/listheaderbg"
android:layout_height="0dp"
android:layout_width="0dp"
tools:layout_editor_absoluteX="310dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/guideline3"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/iv_rank"
android:src="@drawable/ic_rank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/leaderinfo"
android:visibility="gone"
android:background="@color/listheaderbg"
tools:layout_editor_absoluteX="376dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline1"
app:layout_constraintGuide_percent="0.44"
android:orientation="vertical"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="181dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline2"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.71"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="292dp" />
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline3"
app:layout_constraintGuide_percent="0.83"
android:orientation="vertical"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="341dp" />
第一个关于内部布局需要垂直约束的问题,你只需要像这样约束顶部:
app:layout_constraintTop_toTopOf="parent"
底部不需要限制,因为高度是 wrap_content
。
关于底部的文本视图,你有外部约束布局wrap_content
,所以如果文本视图也有wrap_content
的高度,那么布局可以确定适当的大小外部容器是内部约束布局的高度 + 文本视图的高度。
但是如果text views设置为0dp
也就是匹配constraints,那么就存在无法解析的依赖。换句话说,文本视图的高度大小取决于外部约束布局(匹配约束)的大小,但外部约束布局的大小取决于其内容的大小,其中包括文本视图的高度但在不知道其容器大小的情况下无法确定。不可能两者兼而有之,所以设计师试图通过您提到的更改来帮助您摆脱这种困境。
底线是仅约束内部布局的顶部并指定文本视图的高度大小。如果您进行了这些更改,那么它应该会起作用。