Вам нужно добавить ограничения к вашим представлениям макета, вот пример:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/constraintlayout_intro"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimaryDark"
android:paddingLeft="@dimen/spacing_normal"
android:paddingRight="@dimen/spacing_normal">
<br.com.informant.cegonheira.ui.component.CustomViewPager
android:id="@+id/viewpager_intro"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btn_intro"
android:layout_width="200dp"
android:layout_marginTop="360dp"
android:layout_height="@dimen/spacing_big"
android:background="@drawable/background_rounded_green_gradient_button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<me.relex.circleindicator.CircleIndicator
android:id="@+id/circle_indicator_intro"
android:layout_width="match_parent"
android:layout_height="@dimen/spacing_normal"
android:layout_marginTop="460dp"
app:ci_drawable="@drawable/ic_radio_white"
app:ci_drawable_unselected="@drawable/ic_radio_grey"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Обратите внимание на это в последнем представлении (CircleIndicator):
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
Это то, что говорит, гдепредставление будет «привязанным», в противном случае они просто «плавают», как это случилось с вашим.
Подробнее об этом можно прочитать здесь: Создание отзывчивого интерфейса с ConstraintLayout
Поздравляем с первым приложением!