2017-04-26 95 views
9

ConstraintLayout kullanarak test için basit bir uygulama hazırlıyorum. Ama benim bir problemim var. İşte Android ConstraintLayout etiketini içeren diğer düzeni ekleyin etiketi ekleyin

activity_main.xml benim kodudur

<?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> 

Kod sonucu

Problem

ben altında olmak "content_main" istiyorum "Hellow dünya!" Metin görünümü.

RelativeLayout, LinearLayout, ConstraintLayout kullanarak "content_main" öğesini kullanın. ama işe yaramıyor.

Herhangi bir çözüm buluyorum. Ama ben sadece ConstraintLayout nasıl kullanılır.

Android "include" etiketi ConstraintLayout ile çalışmıyor mu?

cevap

13

Android ConstraintLayout ile çalışır etiketini dahil ancak aşağıdaki ile eklemek istediğiniz düzen ne kadar büyük ilan etmek gerek Bundan sonra

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

nitelikleri, sizin kısıtlamaları çalışması gerekir.

+4

Öyleyse, eğer bir plan dahil etmenin kullanımı nedir? Gelecekte, içerdiğim her yerde, boyutları değiştirmem gerekecek mi? Uygulamamın her yerine 0,3 dp'lik bir ayırıcı satır ekliyorum ve yalnızca bir yerde yüksekliğini tanımlamak istiyorum – Ritzor

+2

Önerilen uygulama, yukarıdaki gibi kodlanmış değerleri kullanmamaktır. Bunun yerine, res bir dimens.xml dosyası oluşturmak/eklemek istiyorum Android projesinin değerler ... 100dp söylemek ve sonra xml kullanmak ... android_layout_width = "@ dimen/included_layout_width" – taurelas

+1

"match_parent" da çalışıyor –