2 Stimmen

ImageView kann nicht in RelativeLayout ausgerichtet werden

Ich habe ein Layout mit zwei textViews und einem ImageView.

der erste Text ist links ausgerichtet. Der zweite Text ist ebenfalls links ausgerichtet und befindet sich unter dem ersten Text. Das Bild ist RECHTS ausgerichtet und befindet sich am oberen Rand des ersten Textes und am unteren Rand des zweiten Textes.

Ich habe versucht, ein RelativeLayout für die Aufgabe zu verwenden, aber das Bild weigert sich, nach rechts auszurichten.

Hier ist meine xml

<RelativeLayout
            android:id="@+id/NameAndPhoto"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <LinearLayout
                android:id="@+id/Names"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/FirstName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="@style/contact_page_name_text_style" >
                </TextView>

                <TextView
                    android:id="@+id/LastName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="@style/contact_page_name_text_style" >
                </TextView>
            </LinearLayout>

            <ImageView
                android:id="@+id/PersonPhoto"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@id/Names"
                android:layout_alignParentRight="true"
                android:layout_alignTop="@id/Names"
                android:layout_toRightOf="@id/Names"
                android:contentDescription="@string/contact_page_photo_content_description"
                android:padding="3sp"
                android:scaleType="fitCenter" >
            </ImageView>
        </RelativeLayout>

Bitte beraten Sie mich.

Danke, Ika.

5voto

Gangnus Punkte 23092

Wenn Sie LinearLayout verwenden möchten, verwenden Sie width="match_parent" und ausrichten durch Einstellung gravity="right" . Sie bewegen sich also Text in der Ansicht, die die Breite der übergeordneten Ansicht hat.

Was die Platzierung von ImageView in RelativeLayout betrifft, so gibt es hier einen Widerspruch: android:layout_alignParentRight="true" y android:layout_toRightOf="@id/Names" - zwei verschiedene horizontale Anordnungen.

Außerdem können Sie nicht gleichzeitig den unteren und den oberen Platz verwenden. Und Sie verwenden sie in Image. Wieder ein Widerspruch.

Und wie können Sie das Bild rechts vom LinearLayout platzieren, das die gesamte Breite des Root-Layouts einnimmt? Wo könnte sie platziert werden? Breite der Namen auf wrap_content ändern

0voto

bwoogie Punkte 4281

Ich bin mir nicht ganz sicher, wonach Sie suchen... Und ich bin nicht sicher, ob es eine gute Praxis ist, eine Tonne von LienarLayouts zu verschachteln... Aber hier ist etwas, das helfen könnte?

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/Names"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical" android:layout_weight="1">

        <TextView
            android:id="@+id/FirstName"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="first name" />

        <TextView
            android:id="@+id/LastName"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="last name" />
    </LinearLayout>

    <ImageView
        android:id="@+id/PersonPhoto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3sp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_launcher" android:layout_weight="1"/>

</LinearLayout>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X