Jia*_*Liu 1 android android-layout android-constraintlayout
我目前正在尝试ConstraintLayout
我们的项目.
我想要实现的布局可以简化如下:
布局顶部有两个视图(比如TopA和TopB),还有另一个视图(比如BottomC)位于它们下面.
TopB具有可变高度,在不同情况下,TopB的高度可能比TopA更大或更小.
我的问题是:如何将BottomC约束到具有较大高度的顶视图的底部,以便BottomC不会被具有较大高度的视图重叠.(下面的截图)
我可以通过将TopA和TopB添加到额外ViewGroup
(LinearLayout
例如)并将BottomC约束到底部来实现ViewGroup
.但是有可能在不引入额外层的情况下实现这一目标ViewGroup
吗?
发布问题3分钟后,我刚发现最近发布的1.1.x版本ConstrainLayout
有一个新功能Barrier
,并且ConstrainLayout
已经更新了官方培训文档以介绍它.
这正是我所寻找的.希望这可以帮助像我这样的人.
实际的布局代码如下所示(注意android.support.constraint.Barrier
节点):
<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="match_parent" >
<ImageView
android:id="@+id/topA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/topB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="24dp"
android:text="Text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.75"
app:layout_constraintStart_toEndOf="@+id/topA"
app:layout_constraintTop_toTopOf="@+id/topA"
/>
<android.support.constraint.Barrier
android:id="@+id/barrier4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="topA,topB"
tools:layout_editor_absoluteY="16dp"/>
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.50"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/barrier4"/>
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
491 次 |
最近记录: |