Articles of android constraintlayout

如何使用ConstaintLayout将多个视图集中在一起?

背景 谷歌已经宣布了一种名为“ ConstraintLayout ”的新布局,该布局应该是最终布局,可以取代所有布局,同时保持平坦(没有内部布局)并具有更好的性能。 问题 事情是,我几乎没有看到任何可以帮助我解决这个问题的教程,除了在Google IO上展示的video。 我尝试做的是,我在另一个布局中有一个垂直居中的LinearLayout – 将它们转换为单个ConstraintLayout。 毕竟,这是这个新布局的目的…… 我想要处理的布局如下: 请注意,中心的视图仅垂直居中,并且2个textView位于ImageView的右侧,ImageView也垂直居中。 这一切都适用于RelativeLayout,它具有2个TextViews的LinearLayout,但我想知道如何将它们转换为单个ConstraintLayout。 这是我展示的示例XML: 我尝试了什么 我尝试阅读一些文章并观看Google的一些video: https://codelabs.developers.google.com/codelabs/constraint-layout/index.html#0 https://www.youtube.com/watch?v=sO9aX87hq9c https://youtu.be/csaXml4xtN8?t=1693 这没有用,所以我尝试使用它,希望我自己能find如何使用它。 但我无法find如何做到这一点。 我尝试使用该function转换布局,但这会使视图变得非常混乱,并且会增加我不希望拥有的额外边距。 这个问题 如何将2个布局转换为单个ConstraintLayout?

ConstraintLayout:`layout_constraintLeft_creator`在xml中做了什么?

示例代码: tools:layout_constraintRight_creator=”1″是什么tools:layout_constraintRight_creator=”1″在这做什么? 没有任何文件解释这些事情。

Android ConstraintLayout – 将一个视图放在另一个视图的顶部

我正在尝试在Button上添加一个ProgressBar (两者都在ConstraintLayout )。 但是即使在onCreate上的ProgressBar上调用了bringToFront之后,它也总是留在Button 。 ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar); progressBar.bringToFront();

ConstraintLayout边距不起作用

如果我限制的视图的可见性marginTop则使用下面的xml将忽略marginTop 。 这种情况发生在最新版本的lib版本com.android.support.constraint:constraint-layout:1.0.0-beta4 例: tvMessage和ivCommentImage是visible – tvMessage和ivCommentImage上的16dp顶部边距工作正常。 如果ivCommentImage gone ,边距将被忽略。 <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="16dp"> <!– some more views here –> <TextView android:id="@+id/tvMessage" style="@style/SocialFeed.Description" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/ivProfile" app:layout_goneMarginTop="0dp" tools:text="@string/lorem_ipsum_140chars"/> <android.support.v7.widget.AppCompatImageView android:id="@+id/ivCommentImage" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:adjustViewBounds="true" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvMessage" app:layout_goneMarginTop="0dp" /> <android.support.constraint.Guideline android:id="@+id/gCenter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" […]

Android使用包含标签在ConstraintLayout中添加其他布局

我使用ConstraintLayout做了一些简单的testing应用程序。 但是我有一些问题。 这是我的代码 activity_main.xml中 <?xml version="1.0" encoding="utf-8"?> <layout 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.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.user.myapplication.activity.MainActivity"> <Button android:id="@+id/btn_launch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginTop="16dp" android:text="launch" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/text_view" android:layout_width="100dp" android:layout_height="50dp" android:layout_marginEnd="16dp" android:layout_marginTop="16dp" android:text="Hello World!" app:layout_constraintHorizontal_bias="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/btn_launch" /> <include layout="@layout/content_main" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/text_view" /> </android.support.constraint.ConstraintLayout> content_main.xml <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" […]

Android ConstraintLayout – 将一个视图置于另一个视图之上

我试图添加一个Button的ProgressBar (都在一个ConstraintLayout )。 <Button android:id="@+id/sign_in_button" android:layout_width="280dp" android:layout_height="75dp" android:layout_marginBottom="75dp" android:layout_marginTop="50dp" android:text="@string/sign_in" android:textColor="@color/white" android:textSize="22sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/passwordEditText" app:layout_constraintVertical_bias="0.0"/> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="@+id/sign_in_button" android:layout_marginTop="8dp" app:layout_constraintBottom_toBottomOf="@+id/sign_in_button" android:layout_marginBottom="8dp" app:layout_constraintVertical_bias="0.5" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="@+id/sign_in_button" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="@+id/sign_in_button"/> 但即使在onCreate的ProgressBar上调用bringToFront之后,它始终停留在Button 。 ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar); progressBar.bringToFront();

使RecyclerView的高度在约束布局中的“wrap_content”

我试图设置wrap_content的回收站视图的高度,并使其尊重,但它会超过布局上的其他小部件。 我现在能做什么? <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white"> <TextView android:id="@+id/tvPastRounds" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginTop="0dp" android:text="Past Rounds" android:textColor="@color/text_color_black" android:textSize="16sp" app:layout_constraintLeft_toLeftOf="parent"/> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintHeight_default="wrap" android:layout_marginBottom="24dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:layout_marginTop="16dp" android:clipChildren="true" android:maxHeight="150dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="@+id/tvPastRounds" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvPastRounds" app:layout_constraintVertical_bias="0.0"/> </android.support.constraint.ConstraintLayout>

如何在ConstraintLayout中组合多个视图

我在ConstraintLayout中添加了3个button。 我已经添加了一个button来禁用或启用这些button。 如果我使用正常的LinearLayout。 我可以把所有的button放在一个线性布局,并启用或禁用该特定的布局。 但是我正在使用ConstraintLayout。 所以我需要禁用或启用所有这些button,我相信ConstraintLayout中必须有一种方法来分组不同的视图。 请指导我如何在ConstriantLayout中对视图进行分组 <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:layout_marginTop="16dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="16dp" android:layout_marginStart="16dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginLeft="16dp" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button2" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="16dp" android:layout_marginStart="8dp" app:layout_constraintLeft_toRightOf="@+id/button" android:layout_marginLeft="8dp" app:layout_constraintTop_toTopOf="@+id/button" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button3" app:layout_constraintTop_toTopOf="@+id/button2" android:layout_marginEnd="16dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginRight="16dp" android:layout_marginStart="8dp" app:layout_constraintLeft_toRightOf="@+id/button2" android:layout_marginLeft="8dp" />

特拉维斯CI失败,因为不能接受许可证限制布局

在我写这个问题之前,我已经search了同样的问题,他们做出口许可证,因为仍然使用约束布局的alpha版本。 但是现在android已经发布了稳定版本的约束布局。 我尝试了很多设置,但仍然失败 我最新的.travis.yml language: android jdk: oraclejdk8 android: components: – platform-tools – tools # to get the new `repository-11.xml` – tools # see https://github.com/travis-ci/travis-ci/issues/6040#issuecomment-219367943) – build-tools-25.0.0 – android-25 # Additional components – extra-google-google_play_services – extra-google-m2repository – extra-android-m2repository licenses: – 'android-sdk-preview-license-52d11cd2' – 'android-sdk-license-.+' – 'google-gdk-license-.+' script: – ./gradlew clean build 这是我的build.gradle apply plugin: 'com.android.application' android […]

如何在ConstraintLayout中的两个视图中的最低位置?

我有两个标题视图HeaderViewA和HeaderViewB 。 这些视图可以具有任何visible或visible组合。 我需要将BigView 放在 HeaderViewA / HeaderViewB的最低位置。 这可能没有嵌套在ConstraintLayout ?