【发布时间】:2018-05-14 08:00:31
【问题描述】:
我制作了这个简单的屏幕。我故意这样做是为了表明约束布局在 wrap_content 的情况下不能正常工作。我知道我可以将 constraint_layout 设为父级,这不会导致问题,但我想了解这不起作用的原因。
<FrameLayout 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="match_parent"
tools:context="com.konel.kryptapps.testapp.MainActivity">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="text view 1" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/textView"
tools:text="text view 2" />
</android.support.constraint.ConstraintLayout>
</FrameLayout>
此 xml 导致底部文本视图与顶部重叠。它对上边距的约束没有得到遵守。但是,如果我将顶部 textview 的文本大小更改为 14sp,它会完美运行。
下面是布局绑定截图:
我以编程方式设置了文本。第一个文本视图包含来自 lorem ipsum 的 100 个单词。我不明白我做错了什么。
附:我正在使用 com.android.support.constraint:constraint-layout:1.0.2
【问题讨论】:
-
将
TextView高度改为0dp -
@StanislavBondar 将高度更改为 0dp 会将 TextView 限制为顶部和底部约束。由于约束不能有负值,因此 TextView 的高度不能大于屏幕高度。因此,您的解决方案可能仅适用于特定情况。如果您希望 TextView 比屏幕尺寸更大,您应该使用 wrap_content 并可能将您的 TextView 放入 ScrollView 或 RecyclerView。看看stackoverflow.com/questions/46584315/…
标签: android android-constraintlayout