linearlayout - align button android
RelativeLayout center vertical (8)
Quiero hacer un diseño de fila de lista. Este diseño tiene una vista de imagen en la parte más a la izquierda, una vista de texto junto a la vista de imagen y una vista de imagen en la parte más a la derecha. Quiero que todos ellos sean centrales verticales.
<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 traté de agregar android:layout_centerVertical="true"
a la vista de texto, pero el resultado es que la vista de texto se alinea con las dos vistas de la imagen. Intenté esto en el emulador de Android 4.2. ¿Alguien podría ayudarme sobre esto?
Agregando tanto android:layout_centerInParent
y android:layout_centerVertical
trabajo para centrar ImageView
tanto vertical como horizontal:
<ImageView
..
android:layout_centerInParent="true"
android:layout_centerVertical="true"
/>
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>
Esto tal vez porque la vista de texto es demasiado alta. Cambiar android: layout_height de la vista de texto para envolver_contenido o usar
android:gravity="center_vertical"
He editado tu diseño. Verifique este código ahora.
<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>
Intente alinear la parte superior e inferior de la vista de texto con uno de los iconos, esto hará que la vista de texto tenga la misma altura que ellos, luego configure la gravity
en center_vertical
para hacer que el texto que se encuentra dentro del centro de visualización de texto se encuentre verticalmente.
<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" />
Para mí, tuve que eliminar
<item name="android:gravity">center_vertical</item>
de RelativeLayout , entonces la configuración de los niños funcionaría:
<item name="android:layout_centerVertical">true</item>
Si el alto / ancho de View = wrap_content
utilizar:
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
Si el alto / ancho de View = match_parent
utilizar:
android:gravity="center_vertical|center_horizontal"
utilizar
android:layout_centerVertical="true"