簡體   English   中英

如何在其父級中垂直居中ImageView?

[英]How to center a ImageView vertically in its parent?

我的布局設計是一個帶有長文本的TextView和一個位於TextView右側的ImageView。 我想將ImageView垂直放在其父級中,所以我使用了android:layout_centerVertical =“true”,但事實證明ImageView已經與其父級的底部對齊。 如果我不使用layout_centerVertical屬性,則ImageView將與其父級的頂部對齊。 我怎么解決這個問題? 謝謝。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:background="#000000">
    <ImageView android:id="@+id/t3" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:src="@drawable/arrow_right"
        android:layout_alignParentRight="true" android:background="#ff0000"
        android:layout_centerVertical="true" android:scaleType="centerInside" />
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This a very very very very very very very very very very very very very very very very long sentence"
        android:textColor="#231ACC" android:layout_toLeftOf="@id/t3" />
</RelativeLayout>

試試android:layout_gravity="center_vertical"

將此xml屬性添加到您希望在其父級中居的子級:

android:layout_centerInParent="true"

這將使其垂直/水平居中。

android:layout_height="wrap_content"更改為RelativeLayout的android:layout_height="fill_parent"並將android:layout_centerVertical="true"到TextView,它將像魅力一樣工作。

您可以將LinearLayoutlayout_widthlayout_height設置為fill_parent並將gravity設置為vertical_center

像這樣的東西:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="horizontal">

        <EditText 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/input_field"
            android:gravity="left"
            android:layout_weight="1"
            android:text="Left Aligned"/>
               <EditText  
            android:id="@+id/input_field"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="1"
            android:text="Right Aligned"/>
    </LinearLayout>
</LinearLayout>

這會將您的圖像置於其父級的垂直中心:

android:layout_gravity="center_vertical"

演示:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="64dp"
    android:orientation="horizontal">
    <ImageView 
        android:layout_width="48dip"
        android:layout_height="48dip"
        android:src="@drawable/ic_launcher"
        android:contentDescription="Application icon"
        android:layout_gravity="center_vertical" />

</LinearLayout>

只需添加:

機器人:layout_gravity = “center_vertical | CENTER_HORIZONTAL”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM