wake-up-neo.com

Android fügt mithilfe des Include-Tags ein anderes Layout in ConstraintLayout hinzu

Ich mache eine einfache App zum Testen mit ConstraintLayout. Aber ich habe ein Problem.

Hier ist mein Code

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"
    xmlns:tools="http://schemas.Android.com/tools">

<Android.support.constraint.ConstraintLayout
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:orientation="vertical">

    <TextView
        Android:id="@+id/textView2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="8dp"
        Android:text="123456"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        Android:id="@+id/textView3"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="8dp"
        Android:layout_marginRight="8dp"
        Android:layout_marginTop="8dp"
        Android:text="98765"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <TextView
        Android:id="@+id/textView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="8dp"
        Android:layout_marginRight="8dp"
        Android:layout_marginTop="8dp"
        Android:text="abc"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />

</Android.support.constraint.ConstraintLayout>

Code-Ergebnis

Problem

Ich möchte, dass " content_main " unter der "Hellow world!" Textvorschau.

Ich verwende RelativeLayout, LinearLayout, ConstraintLayout am Element " content_main ". aber nicht funktionieren.

Ich finde keine Lösung. Aber ich finde gerade, wie man ConstraintLayout benutzt.

Funktioniert das Tag Android "include" bei ConstraintLayout nicht?

32
BlueBright

Android include Tag funktioniert mit ConstraintLayout, aber Sie müssen angeben, wie groß das Layout ist, das Sie mit den folgenden Attributen einschließen möchten.

<include
     layout="@layout/content_main"
     Android:layout_width="100dp"
     Android:layout_height="250dp"
     .../>

Für das enthaltene Layout mit dynamischer Höhe verwenden Sie wrap_content als Wert in layout_height oder layout_width Attribute des Include-Tags.

<include
    Android:id="@+id/input_include"
    layout="@layout/task_input"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"/>

Danach sollten Ihre Einschränkungen funktionieren.

74
taurelas