У меня есть 2 кнопки, но обе они находятся в одной строке, поэтому одна из них не работает и даже не читается.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#343535"
    tools:context=".fragments.GeneralFragment">

    <Button
        android:id="@+id/hello"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:gravity="center_vertical"
        android:text="@string/hello"
    />

    <Button
        android:id="@+id/observed"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:drawableBottom=""
        android:gravity="center_vertical"
        android:text="@string/observed" />

</FrameLayout>

Как я могу отобразить их одно под другим?

1
Reza 14 Сен 2020 в 22:48

3 ответа

Лучший ответ

Самый простой способ - просто использовать LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#343535"
    android:orientation="vertical"
    tools:context=".fragments.GeneralFragment">

    <Button
        android:id="@+id/hello"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:gravity="center_vertical"
        android:text="@string/hello" />

    <Button
        android:id="@+id/observed"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:drawableBottom=""
        android:gravity="center_vertical"
        android:text="@string/observed" />

</LinearLayout>
1
Tuqay 14 Сен 2020 в 19:52

Вы должны использовать RelativeLayout или LinearLayout

           <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#343535"
                tools:context=".fragments.GeneralFragment">

                <Button
                    android:id="@+id/hello"
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:gravity="center_vertical"
                    android:text="@string/hello"
                    />

                <Button
                    android:id="@+id/observed"
                    android:layout_below="@+id/hello"   //Added Layout below
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:drawableBottom=""
                    android:gravity="center_vertical"
                    android:text="@string/observed" />

            </RelativeLayout>

Используя LinearLayout, вы можете установить android: Ориентация = "вертикальный", чтобы элемент автоматически настраивался на значение ниже.

1
Sharad Kale 14 Сен 2020 в 19:55

В настоящее время вы используете FrameLayout, который следует использовать только тогда, когда у вас есть только одно представление под FrameLayout.

Для выполнения ваших требований вы должны использовать LinearLayout с вертикальной ориентацией .

1
Ashok Chaudhari 14 Сен 2020 в 19:51