¿Cómo puedo alinear un elemento para estar en el centro de y sobre otro elemento en el diseño relativo?
Aquí está una imagen para que pueda entender lo que quiero:
- View.getWidth () no funciona en el método onCreate?
- Edición de altura del cuadro EditarText android
- Cómo centralizar el diseño dentro de Android Dialog?
- Android - Navegación personalizada
- Agregar vistas de forma programática en un diseño (lineal) (que está dentro de un ScrollView)
Tengo este elemento verde ya configurado en mi diseño relativo, y lo que quiero es poner otro elemento (el negro en la imagen) por encima de lo que se centra exactamente en el centro del elemento verde.
Tenga en cuenta que el elemento negro no tiene un ancho constante, y es más grande en anchura que el verde.
Hay cosas como android: layout_alignLeft y android: layout_alignRight que sería útil si quería alineado a la izquierda oa la derecha, pero por lo que sé no hay Android: layout_alignCenter por lo que no sé cómo hacer esto …
- Cómo evitar que aparezca el teclado para EditText que no está habilitado
- ¿Cómo implementar un gesto de "dos dedos drag" en Android?
- Coloque un bloque en el centro de un ScrollView
- Diseño de android redimensionamiento de los padres sin cambiar el tamaño de los childs
- Botón personalizado con fondo extraíble: diferencia de relleno en Android 4 vs. Android 2.3
- Creación de accesos directos en Android mediante Intent
- Cómo agregar el diseño personalizado a Arrayadapter?
- Disposición de Android corte diagonal
Como usted mismo dijo, poner ambos elementos dentro de un RelativeLayout .
A continuación, establezca la propiedad " center_horizontal " de ambos elementos en true y, a continuación, establezca la propiedad " below " del elemento green en el id del elemento black.
Aquí está el ejemplo completo:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <View android:id="@+id/view1" android:layout_width="100dp" android:layout_height="40dp" android:background="@color/Black" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <View android:id="@+id/view2" android:layout_height="100dp" android:layout_below="@+id/view1" android:background="@color/Green" android:layout_centerHorizontal="true" /> </RelativeLayout>
("Center_vertical" es un poco opcional)
O aquí, independientemente de la posición Views:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <View android:id="@+id/view1" android:layout_width="100dp" android:layout_height="40dp" android:background="@color/Black" android:layout_centerVertical="true" /> <View android:id="@+id/view2" android:layout_width="40dp" android:layout_height="100dp" android:layout_below="@+id/view1" android:layout_alignLeft="@+id/view1" android:layout_alignRight="@+id/view1" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@color/Green" /> </RelativeLayout>
(En este caso, los márgenes definirán el segundo ancho de vistas)
Este es el resultado final:
- EventBus: la actividad no recibe un evento cuando la aplicación está en segundo plano
- SwipeRefreshLayout pull varias veces comportamiento (SDK 23)