La tâche est simple: il y a deux boutons et un textview code> au-dessus d'eux. Tous les widgets devaient être centrés dans la disposition relative. La seule idée que j'ai est créée le troisième widget
afficher code> et l'utiliser comme axe central pour les boutons. Des idées? Une disposition redondante n'est pas une bonne solution.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/tv_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/app_name" />
<View
android:id="@+id/view_axis"
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_below="@id/tv_progress"
android:layout_centerInParent="true" />
<Button
android:id="@+id/button_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_progress"
android:layout_toLeftOf="@id/view_axis"
android:text="@string/start" />
<Button
android:id="@+id/button_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_progress"
android:layout_toRightOf="@id/view_axis"
android:text="@string/stop" />
</RelativeLayout>
3 Réponses :
Si je comprends ce que vous voulez correctement, vous pouvez mettre le bouton P> Je ne suis pas sûr que c'est ce que vous voulez dire par une "mise en page redondante", mais cela va bien si cela vous donne ce que vous voulez. p> p> code> s dans un
linearlayout code> et centrer que
bien sûr que je peux. Mais c'est un linearlayout code>. Après avoir lu astuces de présentation Android # 3 et Tricks de la présentation Android # 1 < / a>, j'ai commencé à construire des mises en page plus attentivement.
L'utilisation de cette façon ne va pas vous faire mal. Peut-être que si c'est dans un listview code> mais sinon ce n'est pas un problème. Vous ne voulez pas trop de mises en page imbriquées
imbriquées inutiles code> mais dans ce cas, c'est la façon la plus simple que je vois de le faire. Donc, ce n'est pas inutile et il n'y a qu'un seul
layouche code>
Merci! Je suis d'accord, l'imbriquée linearlayout code> est correct dans ce cas.
Ceci versera verticalement et horizontalement le bloc total constitué des boutons TextView +
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_centerInParent="true"> <TextView android:id="@+id/tv_progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/button_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/start" /> <Button android:id="@+id/button_stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/stop" /> </LinearLayout> </LinearLayout> </RelativeLayout>
Vous ajoutez un linearlayout code inutile> de cette façon
Comment voudriez-vous centrer tout le bloc? Avec votre façon, le TextView sera centré et les boutons apparaîtront en dessous d'eux.
La touche code> S apparaîtra centrée sous le
textview code> qui est centré. Je pense que c'est ce que l'OP va, mais pourrait avoir tort. Je n'ai pas eu la chance de comparer les deux
layout code> S pourfois, mais ils devraient avoir le même effet
Bien sûr, horizontalement. J'ai posté une solution s'ils veulent le bloc complet (TextView et Buttons) centrés horizontalement et verticalement. Avec votre méthode, la "pondération" verticale sera éteinte si vous voyez ce que je veux dire. Visuellement, il sera plus lourd dans la moitié inférieure de l'écran que le sommet que le TextView frappera le point vertical central et les boutons apparaissent en dessous.
Touche, mon ami :) Je suppose que cela dépend exactement de quoi est recherché exactement
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Spinner android:id="@+id/sp_rooms" android:layout_toLeftOf="@id/space" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Space android:id="@+id/space" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_registration" android:layout_centerVertical="true" android:layout_toRightOf="@id/space" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>
Regardez ici, cela répond à la question, la réponse cochée n'est pas ce qui a été posé initialement. Stackoverflow.com/Questtions/10904864/...