Я создал цифровую клавиатуру, которая вводит код доступа для перехода к другому виду деятельности, и он прекрасно работает, но макет - беспорядок. На моем снимке экрана вы можете видеть, что это простая цифровая клавиатура, но у меня есть кнопки размером 46dp. Когда я переключаюсь на другой эмулятор или когда я развертываюсь на своем собственном устройстве, которое имеет те же размеры, оно помещает кнопки повсюду и на экране. Это должно выглядеть как скриншот на любом устройстве Android, по крайней мере, в портретном режиме.
Я нашел похожие вопросы, которые не помогли, потому что они использовалилинейные макеты. Я хотел бы сделать это в макете ограничения, если это возможно. Я пришел из веб-разработки, поэтому я обычно обрабатывал бы это, используя% для ширины / высоты, но не уверен, как это работает в разработке для Android.
Я просто вставляю 1 кнопку в моем примере кода здесьпотому что все остальные кнопки практически одинаковы, за исключением их значений и отношений ограничений.
<androidx.constraintlayout.widget.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"
android:background="#9C8A7C"
tools:context=".PswdActivity">
<Button
android:id="@+id/button5"
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:textSize="50sp"
android:text="5"
android:onClick="btnEnterCode"
app:layout_constraintEnd_toStartOf="@+id/button6"
app:layout_constraintStart_toEndOf="@+id/button4"
app:layout_constraintTop_toBottomOf="@+id/button2" />