Je veux partager un écran pour mon application avec deux LinearLayouts. Quels paramètres dois-je utiliser pour effectuer un fractionnement exact en deux parties égales - le premier LinearLayout en haut et le second juste en dessous.
Utilisez le layout_weight
attribut. La disposition ressemblera à peu près à ceci:
<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>
Je réponds à cette question après 4-5 ans mais les meilleures pratiques pour le faire comme ci-dessous
<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>
C'est la bonne approche car l'utilisation de layout_weight est toujours lourde pour les opérations de l'interface utilisateur. Fractionner la mise en page de manière égale à l'aide de LinearLayout n'est pas une bonne pratique
Juste le mettre là-bas:
<?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>
Afin de diviser l'interface utilisateur en deux parties égales, vous pouvez utiliser weightSum sur 2 dans le parent LinearLayout et attribuer layout_weight sur 1 à chacun comme indiqué au dessous de
<?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>