У меня есть RelativeLayout, который содержит 3 детей (LinearLayout):Android layout_above не работает на API 21
- один на вершине.
один в нижней части.
и один между двумя последними видами.
код я использую для этого является:
<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="@color/white"
tools:context="fr.caudoux.onlinegames.activities.GameMainFragment">
<LinearLayout
android:orientation="vertical"
android:background="#ff44f0c3"
android:layout_alignParentTop="true"
android:id="@+id/game_main_actionbar"
android:layout_width="match_parent"
android:layout_height="50dp">
</LinearLayout>
<LinearLayout
android:background="#F"
android:orientation="vertical"
android:id="@+id/game_main_top_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/game_main_actionbar"
android:layout_above="@+id/game_main_chat_container">
</LinearLayout>
<LinearLayout
android:background="#ff2c3ff0"
android:layout_alignParentBottom="true"
android:orientation="vertical"
android:id="@id/game_main_chat_container"
android:layout_marginBottom="70dp"
android:layout_width="match_parent"
android:layout_height="50dp">
</LinearLayout>
</RelativeLayout>
С АНИ 21 attribut «андроида: layout_above» не работает: второй LinearLayout взять все пространство ниже первого, и третий LinearLayout находится над вторым.
На api ниже 21 он работает: вторая часть занимает только пространство между первым и третьим Linlingayout.
Кто-нибудь знает, почему он не работает и что делать?
Благодаря
Альтернативное решение использует линейный макет как root вместо Relative layout. Используйте свойство android: layout_weight в дочерних макетах, чтобы соответствующим образом настроить ваш макет. Надеюсь, это предложение поможет вам решить вашу проблему. – user1154390