Относительный макет добавляет все элементы в верхний левый угол

#android #android-relativelayout

#Android #android-relativelayout

Вопрос:

Я добавил файл ресурсов относительного макета, и всякий раз, когда я перетаскиваю элемент, он устанавливается в верхний левый угол. Есть способ это исправить?

https://imgur.com/a/6FuAZe5

Вот этот код:

 <?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/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Switch
        android:id="@ id/switch1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Switch" />
</RelativeLayout>
 

Ответ №1:

Вы можете добавить атрибут android:gravity="center" для выравнивания дочерних элементов внутри RelativeLayout . Это выровняет дочерние элементы по центру макета. Кроме того, вместо android:layout_centerInParent="true" , вы можете использовать android:layout_alignParentTop="true"

 <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <!-- you need to align the button to a particular
        place in the layout -->
    <Button
        android:id="@ id/button5"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_margin="10dp"/>
    <!-- Then add layout_below/layout_above -->
    <Switch
        android:id="@ id/switch1"
        android:layout_below="@id/button5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Switch Number 1"
        android:layout_margin="10dp"/>

</RelativeLayout>
 

Вы также можете установить несколько значений : android:gravity="bottom|right" . Это выровняет дочерние элементы по нижнему правому углу.
Последние слова: узнайте немного о RelativeLayout том, как его можно использовать.
введите описание изображения здесь

Комментарии:

1. Это не решает мою проблему. Теперь все элементы расположены друг на друге в центре, а не в верхнем левом углу.

2. Обновлено @Moataz.

3. По-прежнему не работает. У него все еще была та же проблема с простым наложением их друг на друга. Я нашел решение вчера или позавчера, но оно почти сделало весь вид «RelativeLayout» несуществующим. Idk в чем проблема.

4. Я уже добавил скриншот результата фрагмента кода, который я предоставил в ответе. Если вы используете те же коды, но результат отличается, я думаю, вы делаете это неправильно.