#java #android #android-studio #button #layout
#java #Android #android-studio #кнопка #макет
Вопрос:
Я пытаюсь выполнить действие, которое должно выглядеть следующим образом: здесь
Проблема в том, что при запуске приложения он не становится одинаковым. Кнопки вырезаны или текст вырезан. И если я изменю положение одной кнопки, все окажется в верхнем левом углу. Мой вопрос: что мне нужно сделать, чтобы все получило нужную мне позицию? Я использовал относительный макет. Может быть, это проблема?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@ id/button3"
android:layout_width="245dp"
android:layout_height="68dp"
android:layout_below="@ id/button"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="83dp"
android:layout_marginTop="26dp"
android:layout_marginEnd="83dp"
android:layout_marginBottom="238dp"
android:text="Info"
android:textColor="@color/colorPrimary"
android:textSize="24sp"
android:textStyle="normal" />
<Button
android:id="@ id/button"
android:layout_width="245dp"
android:layout_height="68dp"
android:layout_centerInParent="true"
android:text="Kartenansicht"
android:textColor="@color/colorPrimary"
android:textSize="24sp"
android:textStyle="normal" />
<TextView
android:id="@ id/textView"
android:layout_width="wrap_content"
android:layout_height="115dp"
android:layout_above="@ id/button2"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="71dp"
android:layout_marginTop="112dp"
android:layout_marginEnd="73dp"
android:layout_marginBottom="18dp"
android:text="Um zu überprüfen, ob Sicherheitskameras in der Nähe sind, bitte hier drücken:"
android:textSize="20sp" />
<Button
android:id="@ id/button2"
android:layout_width="244dp"
android:layout_height="62dp"
android:layout_above="@ id/button"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="83dp"
android:layout_marginEnd="84dp"
android:layout_marginBottom="24dp"
android:text="Start"
android:textColor="@color/colorPrimary"
android:textSize="24sp" />
</RelativeLayout>
Комментарии:
1. 1. Установка фиксированной ВЫСОТЫ для кнопок приведет к неправильному поведению (обрезанный текст в качестве основного) много раз. Вместо этого используйте WRAP_CONTENT . 2. RelativeLayout является «устаревшим» и был заменен более новым ConstraintLayout
Ответ №1:
У вас большой беспорядок в вашем макете. Например:
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
Эти 2 параметра не могут сосуществовать.
Для желаемого макета вы должны использовать LinearLayout с ориентацией, установленной на вертикальную. Таким образом, все, что вам нужно будет сделать, это написать свои объекты пользовательского интерфейса на 1 ниже другого, и они будут размещены на 1 выше другого. Чтобы центрировать их, вы можете использовать gravity и layout_gravity
android:layout_gravity="center"
android:gravity="center"
И это должно быть все.
Редактировать: просто чтобы вы знали, относительный макет в основном помещает любой данный объект в позицию 0,0 макета. Если вы создадите несколько объектов, они будут размещены один поверх другого.
Ответ №2:
используйте constraintlayout и, например, вы даете каждому виду ограничение на начало и конец после того, как вы можете установить ширину в 0dp
Комментарии:
1. Я преобразовал в макет ограничения, и теперь все помещается в верхний левый угол
2. Хорошо, теперь я понял. Мне пришлось добавить ограничения. Спасибо
Ответ №3:
если вы хотите создать дизайн путем перетаскивания, было бы лучше использовать макет ограничения вместо относительного макета, но если вы все равно хотите использовать относительный макет, вам следует использовать «centerInParent = «true» «в средней кнопке и установить «layout_above = «@ id /your_centered_view_id» для кнопки выше и «layout_below = «@ id /your_centered_view_id» «.