Разместите кнопки одну под другой

#android #xml #android-studio

#Android #xml #android-studio

Вопрос:

У меня есть 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. попробуйте использовать линейную компоновку

2. @Madhur именно то, что я искал. Спасибо!

Ответ №1:

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

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

Ответ №2:

Вы должны использовать 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:orientation =»vertical», чтобы автоматически настроить элемент ниже

Ответ №3:

Самый надежный макет — это макет ограничений, с которым вы можете работать именно так

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:id="@ id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
<Button
    android:id="@ id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:text="Button2"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/button1" />

</androidx.constraintlayout.widget.ConstraintLayout>
  

Ответ №4:

Самый простой способ — просто использовать 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>