Android – ¿Cómo posiciono las vistas en un desplazamiento respecto al centro / arriba / abajo (etc.) de su padre?

Tengo un RelativeLayout con vistas alineadas relativas a él (su padre), usando (por ejemplo):

 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); textView.setLayoutParams(layoutParams); 

Y ahora me pregunto, ¿cómo puedo posicionar la vista relativa a la parte inferior de su padre, pero en un desplazamiento (por ejemplo, 100 píxeles por encima de la parte inferior, 20 píxeles de la izquierda, etc), o similar con el centro (30 píxeles bajo El centro)?

Imagen esquemática de la disposición necesaria

He intentado establecer los márgenes de la vista (por ejemplo):

 layoutParams.setMargins(140, 0, 0, 0); 

Antes de aplicarlo al textView , pero eso no funcionó.

Parece una forma extremadamente útil de alinear vistas para varios tamaños de pantalla.

Es importante para mí lograr esto en código, sin usar xmls.

¡Gracias!

2 Solutions collect form web for “Android – ¿Cómo posiciono las vistas en un desplazamiento respecto al centro / arriba / abajo (etc.) de su padre?”

Usted tiene 2 maneras, el easies está utilizando un ancla vista vacía posicionada en el centro

  <View android:id="@+id/anchor" android:layout_width="0dp" android:layout_height="0dp" android:layout_centerInParent="true" /> <TextView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/anchor" android:layout_marginBottom="20dp" android:text="hello world!"/> 

O puede centrar su vista y usar pading por posicionamiento (debe doblar el relleno utilizado porque se desborda por debajo del centro de la pantalla)

  <TextView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:paddingBottom="40dp" android:text="hello world!"/> 

Acabo de comenzar la programación de Android esta noche, por lo que esto puede ser viejo o una mala idea … pero estaba jugueteando con la respuesta anterior y encontró un elemento de posicionamiento por debajo de mi otro elemento estaba causando un problema – o el relleno sería en el camino o alguna cosa. Esto es lo que terminé haciendo.

Utilizando la técnica de anclaje, también le di al ancla una altura (doble lo que usted necesita), y luego alineó mi elemento con la parte superior. Así estaría en medio de la vista menos la mitad de la altura del ancla!

 <View android:id="@+id/anchor" android:layout_width="0dp" android:layout_height="200dp" android:layout_centerInParent="true" /> <TextView android:id="@+id/heading" android:text="@string/heading" android:textColor="@android:color/white" android:textSize="24sp" android:layout_alignTop="@id/anchor" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/subheading" android:text="@string/subheading" android:textColor="@android:color/white" android:textSize="12sp" android:layout_below="@+id/heading" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

La otra respuesta ayudó mucho pero sólo quería dar mis 2 centavos!

  • Cómo obtener coordenadas x, y
  • Extraño borde negro alrededor de XML extraíble android
  • Diferentes dimensiones para diferentes idiomas
  • LinearLayout con divisores en pre Honeycomb
  • Problema de diseño: SliderDrawer no rellena el ancho de los padres
  • Mejor manera de programar botones / imágenes
  • Android: cómo utilizar XML para el diseño de vista personalizada
  • Android Studio 2.0 (Vista previa 3b) xml cambios de diseño no se actualiza en apk?
  • Implementar OnClickListener para un fragmento en android
  • Cómo acceder a los recursos de dibujo (color) en java
  • ListView in Scroll Ver mi vista de desplazamiento se mueve a la parte superior de listview. ¿Cómo puedo evitar esto?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.