Я пытаюсь создать простой макет с тремя фрагментами. Слева, я хочу два фрагмента над каждым, каждый из которых занимает 50% высоты экрана. Справа, я хочу один большой фрагмент контейнера, например:Использование RelativeLayout для вертикального разделения двух фрагментов равномерно
+-----+-----------------+
| f1 | detail_container|
| | |
+-----+ |
| f2 | |
| | |
+-----+-----------------+
Я получил это работает с двумя LinearLayouts
, используя layout_height="0dp"
и layout_weight="1"
, но я получил сообщение, что это плохо сказывается на производительности, поэтому я решил используйте RelativeLayout
. То, что я сейчас это:
<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="match_parent"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle"
tools:context=".MainActivity" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1" >
<fragment
android:id="@+id/fragment1"
android:name="com.example.Fragment1"
android:layout_width="wrap_content"
android:layout_height=""
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
tools:layout="@android:layout/list_content" />
<fragment
android:id="@+id/fragment2"
android:name="com.example.Fragment2"
android:layout_width="wrap_content"
android:layout_height=""
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
tools:layout="@android:layout/list_content" />
</RelativeLayout>
<FrameLayout
android:id="@+id/action_detail_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3" />
</LinearLayout>
Я не знаю, как заполнить layout_height
значения двух фрагментов. Я пробовал всевозможные ценности, но они, кажется, все должны быть абсолютными (чего я не хочу).
добавить '' View' с андроида: layout_height = "0dip" и 'андроида: layout_centerVertical =" true' , затем выровняйте один из них над ним и один под ним с помощью 'android: layout_above =" "и' android: layout_above = "" '. –
hypd09
@ hypd09 Как бы я определил их для заполнения оставшегося пространства? чувствует себя немного взломанным. –
просто установите 'android: layout_height =" match_parent "'. 'RelativeLayout' используется установкой отношений, ничего не взламывает об этом. – hypd09