我是约束布局概念的新手。我想创建一个具有3个视图的布局。 2个视图应该没有任何重量显示,第3个应该占据屏幕的第二个一半。基本上我想隐瞒下面的代码来约束布局。 同样,当第三个视图的可见性消失时,其余两个视图应占据所有宽度。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:layout_weight="1">
<Button
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="he" />
<Button
android:id="@+id/b4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="he" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:layout_weight="1">
<Button
android:id="@+id/b3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hello2" />
</LinearLayout>
</LinearLayout>
我在下面添加了屏幕截图:
答案 0 :(得分:0)
ConstraintLayout
确实支持权重LinearLayout
的概念,只要您使用的是“链”,但我认为在您的情况下,最好使用Guideline
放置半角视图。
<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">
<Button
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HE"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<Button
android:id="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HE"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@+id/one"/>
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<Button
android:id="@+id/three"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="HELLO2"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"/>
</android.support.constraint.ConstraintLayout>
准则的app:layout_constraintGuide_percent
属性告诉它将其自身定位在屏幕任一边缘的中间(您可以在0
和1
之间使用任何值)。 android:orientation
属性告诉它绘制一条垂直线(而不是一条水平线)。
在使用“准则”之后,您可以像使用其他任何视图类型一样将其他视图限制在其中。