webentwicklung-frage-antwort-db.com.de

Android lineares Layout zentrieren und rechts ausrichten

Das habe ich:

enter image description here

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:background="#FFFFFF">
    <LinearLayout Android:id="@+id/LinearLayout01"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:orientation="horizontal"
        Android:background="#E30000"
        Android:layout_gravity="center_horizontal|center_vertical"
        Android:gravity="center_horizontal|center_vertical">
        <TextView 
            Android:id="@+id/TextView00"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textColor="#FFFFFF"
            Android:textSize="20px"
            Android:textStyle="bold"
            Android:text="Something"
            Android:gravity="right|center_vertical"
            />
        <LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:orientation="horizontal"
            Android:gravity="right|center_vertical"
            Android:layout_gravity="center_vertical"
            Android:background="#E30000">
            <Button 
                Android:id="@+id/btnCalls"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:drawableLeft="@drawable/icon"
                Android:gravity="right|center_vertical"
            />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

Und das möchte ich:

enter image description here

Richten Sie also den Text horizontal zentriert und die Schaltfläche vertikal zentriert aus.

Was vermisse ich? Ich habe RelativeLayout noch nicht ausprobiert, und ich würde es vorziehen, dass LinearLayout dies ausführt.

9
erdomester

probier diese

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:id="@+id/LinearLayout01"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:background="#FFFFFF">
    <LinearLayout Android:id="@+id/LinearLayout01"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:orientation="horizontal"
        Android:background="#E30000"
        Android:layout_gravity="center_horizontal|center_vertical" 
        Android:gravity="center_vertical">
        <TextView 
            Android:id="@+id/TextView00"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textColor="#FFFFFF"
            Android:textSize="20px"
            Android:textStyle="bold"
            Android:text="Something"
            Android:layout_weight="1" 
            Android:gravity="center"/>
        <LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_height="wrap_content"
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:orientation="horizontal"
            Android:gravity="right|center_vertical"
            Android:layout_gravity="center_vertical"
            Android:background="#E30000"                
            Android:layout_width="wrap_content">
            <Button 
                Android:id="@+id/btnCalls"
                Android:layout_width="wrap_content"
                Android:drawableLeft="@drawable/icon"
                Android:gravity="right|center_vertical" 
                Android:layout_height="wrap_content" 
                Android:layout_margin="5dip"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
10
Vladimir
Android:gravity="right|center_vertical"

richtet Ihre Textansicht nach rechts aus. Wie wäre es mit center_horizontal?

Und Ihre LinearLayouts haben dieselbe ID. Wenn es keinen weiteren Code gibt, würde ich einen davon löschen.

27
banzai86

Ich fand keine der Antworten so, wie es das OP beabsichtigte, aber die RelativeLayout-Lösung war die am nächsten liegende. Nur dass die Textansicht nicht zentriert war. Aber mit layout_centerInParent = true funktioniert es wie ein Zauber:

<RelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">
    <TextView 
         Android:id="@+id/TextView00"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:textColor="#FFFFFF"
         Android:textSize="20px"
         Android:textStyle="bold"
         Android:text="Something"
         Android:layout_centerInParent="true" />

    <Button 
         Android:id="@+id/btnCalls"
         Android:drawableLeft="@drawable/icon"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:layout_alignParentRight="true"/>
</RelativeLayout>
2
grago

Versuchen Sie, eine leere Ansicht innerhalb des horizontalen linearen Layouts zwischen dem Element, das Sie links sehen möchten, und dem Element, das Sie rechts sehen möchten, hinzuzufügen, z.

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

        <Button
            Android:layout_width="wrap_content"
            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>
1
alcsan

sie haben Android:gravity="right|center_vertical" in Ihrer Textansicht verwendet. Verwenden Sie Android:gravity="center".

0
Vineet Shukla

Ich denke, Schwerkraft bedeutet die Position von Dingen innerhalb der Komponente (für die Textansicht bedeutet es den von Ihnen angegebenen Text) in der Komponente, wobei layout_gravity die Position der Komponente selbst im gesamten Layout bedeutet. So ...

Versuchen Sie es mit:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout Android:id="@+id/LinearLayout01"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:orientation="vertical"
        Android:background="#FFFFFF"
        >
        <LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:orientation="horizontal"
            Android:background="#E30000"
            Android:layout_gravity="right"
            Android:gravity="center_vertical|right"                    
            >
                <LinearLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_gravity="right|center_vertical"
                    Android:gravity="center_vertical|center" 
                    Android:layout_weight="0.9"
                >
                    <TextView 
                        Android:id="@+id/TextView00"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:textColor="#FFFFFF"
                        Android:textSize="20px"
                        Android:textStyle="bold"
                        Android:text="Something"
                        Android:gravity="center_horizontal"
                        Android:layout_gravity="center_horizontal|center_vertical" 

                    />
                </LinearLayout>
                <LinearLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_gravity="right|center_vertical"
                    Android:gravity="center_vertical|right"                    
                    Android:paddingTop="5dip"
                    Android:layout_weight="0.1"
                >
                    <Button 
                        Android:id="@+id/btnCalls"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:drawableLeft="@drawable/icon"
                        Android:layout_gravity="center_vertical"
                        Android:gravity="center"                                    
                    />
                </LinearLayout>
        </LinearLayout>
    </LinearLayout>
0
Hiral

layoutgewicht für TextView und LinearLayout definieren

setze Android:layout_weight="1" auf TextView

setze Android:layout_weight="0" auf LinearLayout

und ändere auch den layout_width="wrap_content" in LinearLayout und setze layout_gravity="center" auf TextView

0
Ramakrishna

Die Lösung dafür ist- Android: Schwerkraft = "center_vertical"

Normalerweise müssen Sie sich auch um die Position der Eltern kümmern, um sicherzustellen, dass es funktioniert.

0
Jatin Patro

Benutze einfach RelativeLayout und wallaaa !!!

<RelativeLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">
    <TextView 
         Android:id="@+id/TextView00"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:textColor="#FFFFFF"
         Android:textSize="20px"
         Android:textStyle="bold"
         Android:text="Something"
         Android:gravity="center" />

    <Button 
         Android:id="@+id/btnCalls"
         Android:drawableLeft="@drawable/icon"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:layout_alignParentRight="true"/>
</RelativeLayout>
0
sdelvalle57