uso una sistemas modelo diagrama clases casos biblioteca actividades android xml android-layout include android-constraintlayout

android - sistemas - Cómo incluir un diseño de restricción en otro diseño de restricción y establecer una restricción entre cada uno



diagrama de uml de sistemas de biblioteca (4)

Estoy usando restrictionlyout v 1.0.1.

Me gustaría incluir en mi xml un sub ConstraintLayout correspondiente a una parte de mi diseño global (que a su vez es un ConstraintLayout). Divido el diseño en dos xmls para usar esta subparte en otro lugar

Intenté esto, pero no tengo control sobre dónde colocar el diseño de mi restricción en el padre. Me pregunto si tengo que colocar todo en el mismo archivo xml o si es una solución para usar archivos separados.

tmp_1.xml

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="LABEL1" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="16dp" /> <TextView android:id="@+id/label_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="LABEL2" app:layout_constraintStart_toStartOf="@id/label" app:layout_constraintEnd_toEndOf="@id/label" app:layout_constraintTop_toBottomOf="@id/label" android:layout_marginTop="16dp" /> <include layout="@layout/tmp_2" /> </android.support.constraint.ConstraintLayout>

tmp_2.xml

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/view_80" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="80th element" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="10dp" android:layout_marginStart="12dp" /> </android.support.constraint.ConstraintLayout>

El resultado es este resultado real.

Pero quiero que sea este resultado esperado.

Intenté esto pero no funciona

<include app:layout_constraintTop_toBottomOf="@id/label_2" layout="@layout/tmp_2" />

Me alegraría tener tus soluciones,

Gracias


En realidad encontré una solución. Android Studio no autocompleta los parámetros de restricción de restricción en una etiqueta de inclusión, pero sí tienen un impacto en ella siempre y cuando se incluya un tamaño.

<include layout="@layout/tmp_2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="10dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/label_2" />


Para incluir un diseño de restricción a otro diseño de contraposición para usar un diseño de contrsaint más para cada padre del diseño de inclusión ... Como a continuación:

<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" android:background="@drawable/new_landing_bg" tools:context=".activity.DesignTestActivity"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> <include layout="@layout/common_footer_layout" /> </android.support.constraint.ConstraintLayout>

este es un trabajo en mi diseño xml. Disfruta el código.


Para incluir un diseño de restricción y restringirlo de acuerdo con sus necesidades, deberá dar ancho y alto al diseño incluido de esta manera:

<include android:id="@+id/shop_card_layout" layout="@layout/shop_card_one" android:layout_height="wrap_content" android:layout_width="300dp" android:layout_marginTop="8dp" app:layout_constraintStart_toStartOf="@id/heading_tv" app:layout_constraintTop_toBottomOf="@+id/heading_tv" />


Podría evitar las restricciones ConstraintLayout en el elemento de inclusión. Yo solo <include/> como es.

Archivo de diseño de MainActivity:

<?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/toolbarLayout" layout="@layout/layout_toolbar" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:text="CONTENTS" app:layout_constraintBottom_toBottomOf="@+id/footerLayout" app:layout_constraintEnd_toEndOf="@+id/footerLayout" app:layout_constraintStart_toStartOf="@+id/footerLayout" app:layout_constraintTop_toTopOf="@+id/footerLayout" /> <include android:id="@+id/footerLayout" layout="@layout/layout_footer" /> </android.support.constraint.ConstraintLayout>

Archivo de diseño de la barra de herramientas:

<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"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" android:minHeight="?attr/actionBarSize" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toStartOf="parent" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <TextView android:id="@+id/toolbarTitleTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/hidden" android:textColor="@android:color/white" tools:layout_editor_absoluteX="192dp" tools:layout_editor_absoluteY="19dp" /> </android.support.v7.widget.Toolbar> </android.support.constraint.ConstraintLayout>