I'm making a simple test app using ConstraintLayout, but I have a problem.
Here is my 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 result
I want "content_main" to be under the "Hello world!" TextView.
I using RelativeLayout, LinearLayout, ConstraintLayout at "content_main" element, but they do not not work.
I don't find any solution.
Does the Android "include" tag not work with ConstraintLayout?
To efficiently re-use complete layouts, you can use the <include/> and <merge/> tags to embed another layout inside the current layout. Reusing layouts is particularly powerful as it allows you to create reusable complex layouts.
You can use as many layouts as possible for a single activity but obviously not simultaneously. You can use something like: if (Case_A) setContentView(R. layout.
You can create linear layouts now with ConstraintLayout by constraining the sides of each element with each other. The quick way of creating these layouts is to select all the views together and right click to center horizontally or vertically.
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" .../>
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.
In the constrain layout define the height and width and your constraints as follows:
<include app:layout_constraintTop_toBottomOf="@id/custom_members_toolbar_layout" app:layout_constraintBottom_toTopOf="@id/file_xfer_bottom_nav_bar" android:layout_height="0dp" android:layout_width="match_parent" layout="@layout/file_xfer_upload_layout"/>
This will auto resize the height based on your constraints.
Cheers!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With