#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>