2016-04-14 18 views
0

Görünümlerimden yalnızca birini göreli bir düzende ortalamaya çalışıyorum. Aşağıdaki kodu kullanıyorum:layout_gravity Görünümümü dikey olarak ortalamıyor

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="0.21" 
    android:id="@+id/atm_map_legend_view"> 

    <ImageButton 
     android:id="@+id/atm_icon_legend" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:gravity="center_vertical" 
     android:layout_marginRight="10dp" 
     android:background="@null" 
     android:src="@drawable/help_icon"/> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/icon_legend_point" 
     android:src="@drawable/blurb_point_down" 
     android:layout_alignParentTop="true" 
     android:layout_alignLeft="@+id/atm_icon_legend" 
     android:layout_marginLeft="6dp" 
     android:visibility="invisible"/> 

</RelativeLayout> 

Bu şu sonuç alır:

pic of icon uncentered

Gördüğünüz gibi

, ImageButton dikey merkezleme değildir. android:gravity eser kullanarak, ama bu açılır (Bu ImageButton ile örtüşen, aşağı hareket etmesine neden olur.)

Herhangi bir fikir bu neden benim ImageButton ortalama olmadığı için zaman sonra ImageView uğraşamaz?

+1

'sadece FrameLayout'' dayanmaktadır bir 'FrameLayout' veya diğer düzenleri çalışır, bir' RelativeLayout' çalışmaz layout_gravity'. 'RelativeLayout' farklı öznitelikleri kullanır, bu durumda boolean 'true' veya' false' değerini bekleyen 'layout_centerVertical'ı ararsınız. –

cevap

1

android:layout_centerVertical="true"'u denediniz mi? Bunun gibi

:

<RelativeLayout 
    android:background="@color/colorAccent" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="0.21" 
    android:id="@+id/atm_map_legend_view"> 

    <ImageButton 
     android:id="@+id/atm_icon_legend" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_centerVertical="true" 
     android:gravity="center_vertical" 
     android:layout_marginRight="10dp" 
     android:layout_marginEnd="10dp" 
     android:background="@null" 
     android:src="@mipmap/ic_launcher"/> 

</RelativeLayout> 

enter image description here

+0

Bu çok güzel çalıştı, teşekkürler. Çok uzun zamandır iOS'den başka bir şey yapmadan ... –

İlgili konular