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/...