The ConstraintLayout is a powerful new class, imagine a RelativeLayout on steroids – yea, that’s the ConstraintLayout. It allows us to lay out child views using ‘constraints’ to define position based relationships between different views found in our layout. The aim of the ConstraintLayout is to help reduce the number of nested views, which will improve the performance of our layout files. The layout class also makes it easier for us to define layouts than when using a RelativeLayout as we can now anchor any side of a view with any side of another, rather than having to place a whole view to any side of another
<?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"
tools:context="androiindians.radiogroup.Main2Activity">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="User Name"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="32dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/editText2" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="29dp"
android:ems="10"
android:hint="password"
android:inputType="textPassword"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="91dp"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp"
android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/editText"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toTopOf="@+id/button" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
tools:layout_editor_absoluteY="143dp"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="109dp"
android:layout_marginLeft="109dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
app:layout_constraintHorizontal_bias="0.43"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="320dp"
android:layout_marginTop="32dp"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
</android.support.constraint.ConstraintLayout>