Android使用include标签在ConstraintLayout中添加其他布局 [英] Android add other layout in ConstraintLayout using include tag
问题描述
我使用ConstraintLayout制作了一些简单的应用进行测试.但是我有一些问题.
I make some simple app for test using ConstraintLayout. But I have some problem.
这是我的代码
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>
代码结果
我希望" content_main "位于"Hellow世界"之下! TextView.
I want "content_main" to be under the "Hellow world!" TextView.
我在" content_main "元素上使用了RelativeLayout,LinearLayout,ConstraintLayout.但不起作用.
I using RelativeLayout, LinearLayout, ConstraintLayout at "content_main" element. but not work.
我找到任何解决方案.但是我只是找到了如何使用ConstraintLayout.
I find any solution. But I Just find that How to use ConstraintLayout.
在ConstraintLayout中,Android"include"标签不起作用吗?
Is Android "include" tag not work at ConstraintLayout?
推荐答案
Android include 标记与ConstraintLayout
兼容,但是您需要声明要包含在布局中的布局有多大以下属性.
Android include tag does work with ConstraintLayout
, but you need to declare how big is the layout you want to include with the following attributes.
<include
layout="@layout/content_main"
android:layout_width="100dp"
android:layout_height="250dp"
.../>
对于具有动态高度的包含布局,请使用wrap_content
作为包含标记的layout_height
或layout_width
属性中的值.
For included layout having dynamic height use wrap_content
as a value in layout_height
or layout_width
attributes of include tag.
<include
android:id="@+id/input_include"
layout="@layout/task_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在那之后,您的约束应该起作用.
After that, your constraints should work.
这篇关于Android使用include标签在ConstraintLayout中添加其他布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!