Quiero hacer un diseño de fila de lista. Este diseño tiene una vista de imagen en el extremo izquierdo, una vista de texto junto a la vista de imagen y una vista de imagen en el extremo derecho. Quiero que todos estén en el centro vertical.
<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>
También intenté agregar android:layout_centerVertical="true"
a la vista de texto, pero el resultado es que la vista de texto se alinea en la parte inferior con la vista de dos imágenes. Probé esto en el emulador de Android 4.2. ¿Alguien podría ayudarme con esto?
android
center
android-relativelayout
usuario2368561
fuente
fuente
Si la altura / ancho de la vista = wrap_content
utilizar:
android:layout_centerHorizontal="true" android:layout_centerVertical="true"
Si la altura / ancho de la vista = match_parent
utilizar:
android:gravity="center_vertical|center_horizontal"
fuente
Intente alinear la parte superior e inferior de la vista de texto a uno de los iconos, esto hará que la vista de texto compartiendo misma altura que ellos, a continuación, establezca
gravity
acenter_vertical
hacer que el texto dentro del texto centro de vista 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" />
fuente
Para mi tuve que quitar
<item name="android:gravity">center_vertical</item>
de RelativeLayout , por lo que la configuración de los niños funcionaría:
<item name="android:layout_centerVertical">true</item>
fuente
Esto es trabajo para mí.
<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>
fuente
Esto puede deberse a que la vista de texto es demasiado alta. Cambie android: layout_height de la vista de texto a wrap_content o use
android:gravity="center_vertical"
fuente
Añadiendo ambos
android:layout_centerInParent
yandroid:layout_centerVertical
trabajo para mí para centrarImageView
tanto vertical como horizontalmente:<ImageView .. android:layout_centerInParent="true" android:layout_centerVertical="true" />
fuente
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_centerInParent="true" android:layout_gravity="center_vertical" android:layout_marginTop="@dimen/main_spacing_extra_big" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/noto_kufi_regular" android:text="@string/renew_license_municipality" android:textColor="@color/sixth_text" android:textSize="@dimen/main_text" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/noto_kufi_regular" android:text="@{RenewLicenseBasicInfoFragmentVM.tvMunicipality}" android:textColor="@color/sixth_text" android:textSize="@dimen/main_text" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerInParent="true" android:layout_gravity="center_vertical" android:layout_marginTop="@dimen/main_spacing_extra_big" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:fontFamily="@font/noto_kufi_regular" android:text="@string/renew_license_license_number" android:textColor="@color/sixth_text" android:textSize="@dimen/main_text" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:fontFamily="@font/noto_kufi_regular" android:text="@{RenewLicenseBasicInfoFragmentVM.tvLicenseNum}" android:textColor="@color/sixth_text" android:textSize="@dimen/main_text" /> </LinearLayout>`enter code here` </RelativeLayout>
fuente