Как разделить экран с двумя равными LinearLayouts?
хочу разделить экран для моего приложения с двумя LinearLayouts. Какие параметры я должен использовать, чтобы сделать точное разделение на две равные части - первый LinearLayout сверху, а второй-прямо под ним.
4 ответа:
используйте параметр веса, примерно макет будет выглядеть так:
<LinearLayout android:orientation="horizontal" android:layout_height="fill_parent" android:layout_width="fill_parent"> <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="0dp"/> <LinearLayout android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="0dp"/> </LinearLayout>
я отвечаю на этот вопрос через 4-5 лет, но лучшие практики, чтобы сделать это, как показано ниже
<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" tools:context=".MainActivity"> <LinearLayout android:id="@+id/firstLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_toLeftOf="@+id/secondView" android:orientation="vertical"></LinearLayout> <View android:id="@+id/secondView" android:layout_width="0dp" android:layout_height="match_parent" android:layout_centerHorizontal="true" /> <LinearLayout android:id="@+id/thirdLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_toRightOf="@+id/secondView" android:orientation="vertical"></LinearLayout> </RelativeLayout>
Это правильный подход как использовать layout_weight всегда тяжело для операций пользовательского интерфейса. Разделение макета поровну с использованием LinearLayout не является хорошей практикой
просто положить его там:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" android:weightSum="4" android:padding="5dp"> <!-- to show what the parent is --> <LinearLayout android:background="#0000FF" android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="2" /> <LinearLayout android:background="#00FF00" android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="1" /> </LinearLayout>
чтобы разделить пользовательский интерфейс на две равные части, вы можете использовать weightSum из 2 в родителе LinearLayout и назначить layout_weight 1 Каждому, как показано ниже
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:weightSum="2"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> </LinearLayout> </LinearLayout>