Как использовать новый макет ограничений Android для уменьшения иерархии представлений

У вас есть идеи о том, как использовать новый макет ограничений, который был недавно анонсирован на Google I/O в этом году?

10 ответов


вы можете перейти к существующему файлу ресурсов макета, открыть визуальный редактор и щелкните правой кнопкой мыши на RelativeLayout (например) и выберите опцию для преобразования в макет ограничения.

вам также нужно добавить зависимость Gradle в build.файл gradle:

compile 'com.android.support.constraint:constraint-layout:1.0.0'

С Docs

если вы обновляете существующий проект, выполните следующие действия:

убедитесь, что у вас есть последний репозиторий поддержки Android (версия 32 или выше): / / это была часть, которая отсутствовала для меня

нажмите Инструменты > Android > SDK Manager. Перейдите на вкладку Инструменты SDK. Выберите Хранилище поддержки Android и нажмите кнопку ОК.

добавить обновленный Библиотека компоновки ограничений как зависимость в свою сборку.файл gradle:

dependencies {
  compile 'com.android.support.constraint:constraint-layout:1.0.0'
}

на панели инструментов или в уведомлении синхронизации выберите Синхронизировать проект с файлами Gradle.

чтобы добавить новый макет ограничения в проект:

  • щелкните правой кнопкой мыши каталог макета модуля, затем выберите создать > XML > макет XML. Введите название макета и введите " android.поддержка.ограничение.ConstraintLayout " для корневого тега. Щелчок Заканчивать.

чтобы преобразовать существующий макет в макет ограничения:

  • откройте существующий макет в Android Studio и выберите вкладку Дизайн в нижней части окна редактора. В окне дерева компонентов щелкните правой кнопкой мыши макет и выберите Преобразовать в ConstraintLayout.

идите, хотя это ссылке С Google CodeLabs. У вас будет основная идея Ограничение Layout и как использовать различные ограничения, как Manual Constraint, Auto Connect & Inference.

есть UI Builder & Inspector что поможет нам построить более быстрый пользовательский интерфейс.


Я пробовал много версий, но я не мог решить проблему! Наконец, я позволил Android Studio решить эту проблему.

в XML-файле, рядом с сообщением об ошибке вы можете увидеть эту опцию! Нажмите на это, чтобы импортировать reccomonded version

using version 1.0.0-alpha2 of the constraint library which is obsolete

или вы можете нажать alt + enter, поместив курсор на строку ошибки

Я получил ограничение-макет: 1.0.0-alpha8, когда я нажал alt + enter

компиляции Ариа.андроид.поддержка.ограничение: ограничение-макет: 1.0.0-alpha8'


добавить зависимостей

compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9'

и создать новый XML-файл макета --> вкладка goto design --> щелкните правой кнопкой мыши корневой макет и выберите последний вариант преобразовать LinearLayout в ConstraintLayout

Скриншот

enter image description here


вы должны добавить репозиторий google maven в файл gradle уровня модуля (главное)

repositories {
    maven {
        url 'https://maven.google.com'
    }
}

затем добавьте эту строку в зависимости:

compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support.constraint:constraint-layout-solver:1.0.2'

понимание преимуществ производительности ConstraintLayout описывает расходы традиционной иерархии компоновки. Он дает пример этого макета, построенного с вложенными макетами

Example view

и утверждает, что

ConstraintLayout выполняет около 40% лучше на этапе измерения / компоновки, чем RelativeLayout

этой проект Codelab показывает, как использовать ConstaintLayout для уменьшения иерархии представлений и сглаживания вышеупомянутого макета.

Codelab Project


1) чтобы создать новый макет с помощью ConstraintLayout, включите зависимость в приложение.файл gradle

compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8'

Примечание: Для каждого представления в макете вы должны включить следующие атрибуты, иначе представления отображаются в (0,0).

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    ....>

        <View
           android:id="@+id/top_view"
           .../>

        <View
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/top_view"
        app:layout_constraintBottom_toTopOf="@+id/bottom_view"
        ..../>

       <View
           android:id="@+id/bottom_view"
           .../>

</android.support.constraint.ConstraintLayout>

2) чтобы преобразовать существующий файл макета в макет ограничения:

откройте существующий макет в Android Studio и выберите вкладку Дизайн в нижней части окна редактора. В В окне дерева компонентов щелкните правой кнопкой мыши корневой макет и выберите Преобразовать в ConstraintLayout. Затем включите определенные атрибуты up.


изменить зависимости в файле build.gradle.

использовать compile com.android.support.constraint:constraint-layout:1.0.0-beta1 вместо.


компания Google выпустила официальную версию 1.0 ConstraintLayout

теперь импортируйте не бета-версию

compile 'com.android.support.constraint:constraint-layout:1.0.0'

регистрация здесь информация http://tools.android.com/recent/constraintlayout10isnowavailable