Очевидно мне нужно использовать свойства match_parent и wrap_content для layout_width
и layout_height
. Эту документацию по использованию с ConstraintLayout можно увидеть здесь: https://developer.android.com/training/multiscreen/screensizes
Но я бы предложил использовать LinearLayout, поскольку ConstraintLayout в моем случае вел себя по-прежнему плохо, потому что мне пришлось точно определять свойства полей. dps, которые могут не соответствовать определенному размеру экрана. Я добавляю решение LinearLayout ниже, которое работает, как я ожидал, в портретном и ландшафтном режимах:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<Button
android:id="@+id/createAccountBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/create_account" />
<Button
android:id="@+id/signInBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/common_signin_button_text"/>
</LinearLayout>