2013-05-10 21 views
60

リスト行レイアウトを作成したい。このレイアウトには、最も左にイメージビュー、イメージビューのすぐ隣にテキストビュー、最も右にイメージビューがあります。私はそれらのすべてが中心の垂直であることを望む。相対レイアウト中心垂直

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

IものTextViewにandroid:layout_centerVertical="true"を追加しようとしたが、結果は、2つのImageViewのとのTextViewアライン底あります。 私はアンドロイド4.2エミュレータでこれを試しました。 誰もがこれについて私を助けることができますか?

+0

あなたが必要なモックアップを添付することができます何をする? – Noundla

答えて

58

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

<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> 
150

使用

android:layout_centerVertical="true" 
+23

これは正解でなければなりません。なぜならRelativeLayoutはlayout_gravity属性を持たないからです。 – MightySeal

+3

相対レイアウト自体ではなく、相対レイアウト内の要素に使用します。 –

+0

これはRelativeLayoutとその子要素にアタッチしたときに機能しました。 –

1

多分これTextViewには高すぎるので。 android:textviewのlayout_heightをwrap_contentに変更するか、

android:gravity="center_vertical" 
3

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

<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> 
6

アイコンの一つに上部とテキストビューの下部を合わせてみ、これは彼らが、その後、垂直方向にテキストビューセンター内のテキストを作るためにcenter_verticalgravityを設定するのと同じ高さを共有するテキストビューを行います。私にとって

<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

、私は子どもの設定が動作しますので、RelativeLayoutから

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

を削除する必要がありました:

<item name="android:layout_centerVertical">true</item> 
+0

これはそれです!!!アンドロイドを取り除いた直後に動作するようにしました:relativeativeLayoutのgravity_vertical .. – Bruce

9

ビューの高さ/幅= wrap_content場合 - >使用:

android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 

ビューの高さ/幅= match_parent場合 - >使用:

android:gravity="center_vertical|center_horizontal" 
0

私は垂直方向と水平方向の両方ImageViewを中央にための両方android:layout_centerInParentandroid:layout_centerVertical作品を追加:

<ImageView 
    .. 
    android:layout_centerInParent="true" 
    android:layout_centerVertical="true" 
    /> 
関連する問題