tipos studio personalizar paleta muestra linearlayout elementos diseño componentes centrar botones boton amontonados android relativelayout layoutparams

personalizar - tipos de layout android studio



¿Cómo establecer mediante programación el atributo layout_align_parent_right de un botón en Relative Layout? (3)

Tengo un diseño relativo que estoy creando programáticamente:

RelativeLayout layout = new RelativeLayout( this ); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

Ahora tengo dos botones que quiero agregar en este diseño relativo. Pero el problema es que ambos botones se muestran a la izquierda del RelatiiveLayout superpuestos entre sí.

buttonContainer.addView(btn1); buttonContainer.addView(btn2);

Ahora quiero saber cómo puedo programar el android:layout_alignParentRight="true " o android:layout_toLeftOf="@id/btn" atributo de los botones como lo hacemos en el xml?


  1. necesita crear e id para los botones que necesita btn1.setId(1); : btn1.setId(1);
  2. puedes usar la variable params para agregar parámetros a tu diseño, creo que el método es addRule() , revisa los documentos java de Android para este objeto LayoutParams .

Para agregar un atributo RelativeLayout cuyo valor sea verdadero o falso, use 0 para falso y RelativeLayout.TRUE para verdadero:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) button.getLayoutParams() params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE)

No importa si el atributo ya fue agregado o no, usted todavía usa addRule(verb, subject) para habilitarlo / deshabilitarlo. Sin embargo, después de la API 17 puede usar removeRule(verb) que es solo un acceso directo para addRule(verb, 0) .


Puede acceder a cualquier LayoutParams desde el código usando View.getLayoutParams . Solo debes ser muy consciente de a qué LayoutParams estás accediendo. Esto normalmente se logra al verificar el ViewGroup contiene si tiene un LayoutParams interno de LayoutParams entonces ese es el que debe usar. En su caso es RelativeLayout.LayoutParams . Utilizará RelativeLayout.LayoutParams#addRule(int verb) y RelativeLayout.LayoutParams#addRule(int verb, int anchor)

Puedes acceder a ella a través del código:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)button.getLayoutParams(); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of); button.setLayoutParams(params); //causes layout update