2012-01-03 12 views
6

Il mio layout ha ImageView (iv) e TextView (tv). Voglio lasciare la tv a destra di iv. E l'altezza della tv è uguale a quella di Iv. Il televisore Gravity impostato come CENTER_VERTICAL.Come lasciare la ImageView e la TextView alla stessa altezza

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 


    <ImageView 
     android:id="@+id/iv" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true"/> 


    <TextView 
     android:id="@+id/tv" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/iv" 
     android:text="TextView" android:gravity="center_vertical"/> 

</RelativeLayout> 

Come raggiungere l'obiettivo?

+1

Potete utilizzare LinearLayout invece di RelativeLayout, puoi usare il parametro layout_weight come 1 sia per ImageView che per TextView –

+0

Come avrai la stessa altezza di entrambi i widget? l'altezza del textview dipende dalla dimensione del testo. Possiamo stare solo fianco a fianco, non possiamo garantire le altezze allo stesso modo. –

risposta

20

hi provare questo .....

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ImageView 
    android:id="@+id/iv" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:src="@drawable/ic_title_home_demo" /> 

    <TextView 
    android:id="@+id/tv" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/iv" 
    android:layout_alignTop="@+id/iv" 
    android:layout_toRightOf="@+id/iv" 
    android:gravity="center_vertical" 
    android:text="TextView" /> 

    </RelativeLayout> 
1

Bene, per ottenere il centro verticalmente corretto, è necessario rimuovere la riga android:layout_alignParentTop="true" dal tag TextView.

Tuttavia, sembra che si stia tentando di fare in modo che il testo cambi le dimensioni per adattarsi all'intera altezza di ImageView. Questo ovviamente non lo risolverà, ma non lo consiglierei in primo luogo perché potrebbe causare alcune strane vedute.

1

È possibile utilizzare i formati distinti utilizzando

android: layout_width = "wrap_content"

e/o

android: height = "300dp"

(uguale per altezza). Controlla anche i margini e le imbottiture.

Se avete bisogno di essere più dinamico, si potrebbe prendere in considerazione Android: layout_weight cioè per lasciare 2 pulsanti hanno uguale larghezza e riempire lo spazio orizzontale della vista padre è necessario impostare:

android: layout_height =" wrap_content "

android_layout: weight =" 0,5 ".

è possibile seguire questo link: How to make two different layout to have same height?

4

È necessario impostare la proprietà TextView per android:layout_alignTop="@id/iv" e android:layout_alignBottom="@id/iv"

Problemi correlati