リストの行レイアウトを作りたいです。このレイアウトには、左端に画像ビュー、画像ビューの右隣にテキストビュー、右端に画像ビューがあります。私はそれらのすべてが中央垂直であることを望みます。
<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エミュレーターでこれを試しました。誰もこれについて私を助けることができますか?
レイアウトを編集しました。今すぐこのコードを確認してください。
<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>
つかいます
Android:layout_centerVertical="true"
ビューの高さ/幅= wrap_contentの場合
つかいます:
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
ビューの高さ/幅= match_parentの場合
つかいます:
Android:gravity="center_vertical|center_horizontal"
テキストビューの上部と下部をアイコンのいずれかに揃えてみてください。これにより、テキストビューが同じ高さで共有され、gravity
をcenter_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" />
私にとっては、削除する必要がありました
<item name="Android:gravity">center_vertical</item>
from RelativeLayoutなので、子供の設定は機能します:
<item name="Android:layout_centerVertical">true</item>
これは私のために働いています。
<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>
これはおそらく、textviewが高すぎるためです。 textviewのAndroid:layout_heightをwrap_contentに変更するか、使用します
Android:gravity="center_vertical"
Android:layout_centerInParent
とAndroid:layout_centerVertical
の両方を追加すると、垂直と水平の両方でImageView
を中央に配置できます。
<ImageView
..
Android:layout_centerInParent="true"
Android:layout_centerVertical="true"
/>