如何在android的约束布局

时间:2017-07-18 08:58:39

标签: android android-constraintlayout

我正在创建一个登录表单,其中包含约束布局中的两个布局

代码是这样的:

<?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="match_parent"
    android:layout_height="match_parent"
    android:background="#424242"
    android:orientation="vertical">
    <android.support.constraint.Guideline
        android:id="@+id/login_guideline_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="@dimen/guideline_perc_start" />
    <android.support.constraint.Guideline
        android:id="@+id/login_guideline_end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="@dimen/guideline_perc_end" />
    <android.support.v7.widget.AppCompatImageView
        android:id="@+id/login_logo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:scaleType="center"
        app:layout_constraintBottom_toTopOf="@+id/login_form"
        app:layout_constraintLeft_toLeftOf="@id/login_guideline_start"
        app:layout_constraintRight_toLeftOf="@id/login_guideline_end"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/rooll" />

    <android.support.constraint.ConstraintLayout
        android:id="@+id/login_form"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="@id/login_guideline_start"
        app:layout_constraintRight_toLeftOf="@id/login_guideline_end"
        app:layout_constraintTop_toBottomOf="@id/login_logo">

        --the controls for the login form go here--

    </android.support.constraint.ConstraintLayout>

</android.support.constraint.ConstraintLayout>

指南用于使表格在带有横向视图的平板电脑中间显示,并以纵向视图填充屏幕上的电话

我的问题是,因为我在徽标和表单之间创建了一个链,所以父徽标和表单之间链的高度始终相同。

有没有办法改变链条的高度?例如,我可以将父级和徽标之间约束的高度设为0dp,徽标和表单之间链的高度是形式和父级之间的高度的一半吗?

提前感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

看看这个tutorial。您可能希望专注于处理链中权重的this part

  

加权:当链设置为展开或展开时,您可以通过将一个或多个视图设置为“匹配约束”(0dp)来填充剩余空间。默认情况下,空间均匀分布在每个设置为“匹配约束”的视图之间,但您可以使用layout_constraintHorizo​​ntal_weight和layout_constraintVertical_weight属性为每个视图指定重要性权重。如果您在线性布局中熟悉layout_weight,则其工作方式相同。因此,具有最高权重值的视图获得最大的空间;具有相同权重的视图获得相同的空间量。