web-dev-qa-db-fra.com

comment bien aligner le widget dans la disposition linéaire horizontale Android?

C'est le code que j'utilise et qui ne fonctionne pas:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent" 
    Android:orientation="horizontal">

    <TextView Android:text="TextView" Android:id="@+id/textView1"
        Android:layout_width="wrap_content" 
        Android:layout_height="wrap_content"
        Android:gravity="right">
    </TextView>

</LinearLayout>
167
Shantanu

Essayez d'ajouter View vide à l'intérieur de LinearLayout horizontal avant l'élément que vous voulez voir à droite, par exemple:

<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content" >

    <View
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:layout_weight="1" />                

    <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" />

</LinearLayout>
363
alcsan

Ne changez pas la gravité de LinearLayout en "right" si vous ne voulez pas que tout soit à droite.

Essayer:

  1. Remplacez width par TextView par fill_parent
  2. Remplacez gravité par TextView par right

Code:

    <TextView 
              Android:text="TextView" 
              Android:id="@+id/textView1"
              Android:layout_width="fill_parent"
              Android:layout_height="wrap_content"   
              Android:gravity="right">
    </TextView>
97
Sherif elKhatib

En complément de la réponse d’alcsan, vous pouvez utiliser Space depuis l’API 14 (Android 4.0 ICE_CREAM_SANDWICH), documentez ici .

Space est une sous-classe View légère qui peut être utilisée pour créer des espaces entre les composants dans les présentations générales.

<?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" >

    <Space
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:layout_weight="1" />

    <TextView
        Android:layout_width="wrap_content" 
        Android:layout_height="wrap_content"
        Android:text="TextView"
        Android:gravity="right" />

</LinearLayout>

Pour les applications prenant en charge les niveaux d'API inférieurs à 14, il existe un Android.support.v4.widget.Space depuis Android Support Library r22.1.0.

44
Weekend

Avec Disposition linéaire  

<LinearLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/select_car_book_tabbar"
        Android:gravity="right" >

        <ImageView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center_vertical"
            Android:src="@drawable/my_booking_icon" />
    </LinearLayout>

enter image description here

avec FrameLayout

<FrameLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/select_car_book_tabbar">

        <ImageView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center_vertical|right"
            Android:src="@drawable/my_booking_icon" />
    </FrameLayout>

avec RelativeLayout

<RelativeLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/select_car_book_tabbar">

        <ImageView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentRight="true"
            Android:layout_centerInParent="true"
            Android:src="@drawable/my_booking_icon" />
    </RelativeLayout>
27
DeltaCap019

régler le layout_weight="1" de la vue ferait l'affaire.!

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">

<TextView
    Android:id="@+id/textView1"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_weight="1" />

<RadioButton
    Android:id="@+id/radioButton1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"/>

21
Saad Mahmud

Ajoutez Android:gravity="right" à LinearLayout. En supposant que la TextView a layout_width="wrap_content"

13
Ronnie

ajoutez simplement Android:gravity="right" dans la structure de votre support.

7
Idrees Ashraf

Vous devriez utiliser un RelativeLayout et faites-le glisser jusqu'à ce qu'il soit beau

    <ImageView
        Android:id="@+id/button_info"
        Android:layout_width="30dp"
        Android:layout_height="wrap_content"
        Android:layout_alignParentRight="true"
        Android:layout_alignParentTop="true"
        Android:layout_marginRight="10dp"
        Android:contentDescription="@string/pizza"
        Android:src="@drawable/header_info_button" />

</RelativeLayout>
3
nurxyz

linear layout avec layout_width="fill_parent" et le widget avec le même layout width + gravity as right l'alignerait à droite.

J'utilise 2 TextViews dans l'exemple suivant, topicTitle à gauche et topicQuestions à droite.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <LinearLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:paddingLeft="20dp"
        Android:orientation="horizontal">

    <TextView
        Android:id="@+id/topicTitle"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:textSize="18sp"
        Android:textStyle="bold" />

    <TextView
        Android:id="@+id/topicQuestions"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:gravity="right"
        Android:textSize="18sp"
        Android:textStyle="bold" />
    </LinearLayout>

</RelativeLayout>

Sortie

3
prayagupd

Essayez de changer le layout_width en Android:layout_width="match_parent" car gravity:"right" aligne le texte à l'intérieur du layout_width, et si vous choisissez un contenu wrap, il n'a pas où aller, mais si vous choisissez une correspondance parent, vous pouvez aller à droite.

2
mrvinent

Je l'ai fait par le moyen le plus simple:

Prenez juste un (RelativeLayout} _ et mettez votre enfantvue, que vous voulez placer du côté droit.

    <LinearLayout
        Android:id="@+id/llMain"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:background="#f5f4f4"
        Android:gravity="center_vertical"
        Android:orientation="horizontal"
        Android:paddingBottom="20dp"
        Android:paddingLeft="15dp"
        Android:paddingRight="15dp"
        Android:paddingTop="20dp">

        <ImageView
            Android:id="@+id/ivOne"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:src="@drawable/ic_launcher" />


        <TextView
            Android:id="@+id/txtOne"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_marginLeft="20dp"
            Android:text="Hiren"
            Android:textAppearance="@Android:style/TextAppearance.Medium"
            Android:textColor="@Android:color/black" />

        <RelativeLayout
            Android:id="@+id/rlRight"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:gravity="right">


            <ImageView
                Android:id="@+id/ivRight"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:padding="5dp"
                Android:src="@drawable/ic_launcher" />

        </RelativeLayout>
    </LinearLayout>

J'espère que cela vous aidera.

2
Hiren Patel

Pas besoin d'utiliser une vue ou un élément supplémentaire:

// c'est si simple et facile

<LinearLayout
  Android:layout_width="match_parent"
  Android:layout_height="wrap_content"
  Android:orientation="horizontal"
>

// ceci est laissé alignement

<TextView
      Android:layout_width="wrap_content"
      Android:layout_height="wrap_content"
      Android:text="No. of Travellers"
      Android:textColor="#000000"
      Android:layout_weight="1"
      Android:textStyle="bold"
      Android:textAlignment="textStart"
      Android:gravity="start" />

// c'est le bon alignement

<TextView
      Android:layout_width="wrap_content"
      Android:layout_height="wrap_content"
      Android:text="Done"
      Android:textStyle="bold"
      Android:textColor="@color/colorPrimary"
      Android:layout_weight="1"
      Android:textAlignment="textEnd"
      Android:gravity="end" />

</LinearLayout>
1
kamaljeet Singh

En cas avec TextView:

<TextView 
    Android:text="TextView" 
    Android:id="@+id/textView"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"   
    Android:gravity="right"
    Android:textAlignment="gravity">    
</TextView>

Ajouter une vue est un peu difficile et couvre toute la largeur de l'écran comme ceci:

<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >

<View
    Android:layout_width="0dp"
    Android:layout_height="0dp"
    Android:layout_weight="1" />                

<Button
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content" />

Essayez ce code:

<LinearLayout
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="right"
    >

    <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Create Account"/>

</LinearLayout>
0
Zafar Iqbal

Lorsque vous l'ajoutez du concepteur de studio Android dans une LinearLayout, deux propriétés sont ajoutées:

Android:layout_alignParentEnd="true"
Android:layout_alignParentRight="true"
0
WaKo