web-dev-qa-db-ja.com

RelativeLayoutセンター垂直

リストの行レイアウトを作りたいです。このレイアウトには、左端に画像ビュー、画像ビューの右隣にテキストビュー、右端に画像ビューがあります。私はそれらのすべてが中央垂直であることを望みます。

<RelativeLayout
    Android:layout_width="fill_parent" Android:layout_height="100dp"
    Android:gravity="center_vertical"
    >
    <ImageView 
        Android:id="@+id/icon"
        Android:layout_width="50dp" Android:layout_height="50dp"
        Android:layout_gravity="center_vertical" />
    <TextView 
        Android:id="@+id/func_text" Android:layout_toRightOf="@id/icon"
        Android:layout_width="wrap_content" Android:layout_height="100dp"
        Android:layout_gravity="center_vertical" />
    <ImageView 
        Android:layout_width="50dp" Android:layout_height="50dp"
        Android:layout_alignParentRight="true"
        Android:layout_gravity="center_vertical"
        Android:src="@drawable/arrow" />
</RelativeLayout>

また、Android:layout_centerVertical="true"をtextviewに追加しようとしましたが、結果はtextviewが2つのimageviewの下に揃えられます。 Android 4.2エミュレーターでこれを試しました。誰もこれについて私を助けることができますか?

82
user2368561

レイアウトを編集しました。今すぐこのコードを確認してください。

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#33B5E5"
Android:padding="5dp" >

<ImageView
    Android:id="@+id/icon"
    Android:layout_width="50dp"
    Android:layout_height="50dp"
    Android:layout_alignParentLeft="true"
    Android:layout_centerInParent="true"
    Android:background="@Android:drawable/ic_lock_lock" />

<TextView
    Android:id="@+id/func_text"
    Android:layout_width="wrap_content"
    Android:layout_height="100dp"
    Android:layout_gravity="center_vertical"
    Android:layout_toRightOf="@+id/icon"
    Android:gravity="center"
    Android:padding="5dp"
    Android:text="This is my test string............"
    Android:textColor="#FFFFFF" />

<ImageView
    Android:layout_width="50dp"
    Android:layout_height="50dp"
    Android:layout_alignParentRight="true"
    Android:layout_centerInParent="true"
    Android:layout_gravity="center_vertical"
    Android:src="@Android:drawable/ic_media_next" />

</RelativeLayout>
77
Sujith

つかいます

 Android:layout_centerVertical="true"
175
stinepike

ビューの高さ/幅= wrap_contentの場合

つかいます:

Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"

ビューの高さ/幅= match_parentの場合

つかいます:

Android:gravity="center_vertical|center_horizontal"
17
fullMoon

テキストビューの上部と下部をアイコンのいずれかに揃えてみてください。これにより、テキストビューが同じ高さで共有され、gravitycenter_verticalに設定して、テキストビュー内のテキストが垂直になります。

<TextView 
        Android:id="@+id/func_text" Android:layout_toRightOf="@id/icon"
        Android:layout_alignTop="@id/icon" Android:layout_alignBottom="@id/icon"
        Android:layout_width="wrap_content" Android:layout_height="wrap_content"
        Android:gravity="center_vertical" />
7
hidro

私にとっては、削除する必要がありました

<item name="Android:gravity">center_vertical</item>

from RelativeLayoutなので、子供の設定は機能します:

<item name="Android:layout_centerVertical">true</item>
7
ViliusK

これは私のために働いています。

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:id="@+id/rell_main_bg"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="#096d74" > 

<ImageView 
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:layout_centerVertical="true"
    Android:layout_centerHorizontal="true"
    Android:src="@drawable/img_logo_large"
    Android:contentDescription="@null" />

</RelativeLayout>
3
Marvs

これはおそらく、textviewが高すぎるためです。 textviewのAndroid:layout_heightをwrap_contentに変更するか、使用します

Android:gravity="center_vertical"
1
Bolton

Android:layout_centerInParentAndroid:layout_centerVerticalの両方を追加すると、垂直と水平の両方でImageViewを中央に配置できます。

<ImageView
    ..
    Android:layout_centerInParent="true"
    Android:layout_centerVertical="true"
    />
0
Alex Jolig