2010-06-12 12 views
33

Quiero establecer la propiedad "Diseño a la derecha de" de control en tiempo de ejecución en android. De hecho, quiero ajustar los controles cuando la pantalla cambia de orientación.establece programáticamente la propiedad "Diseño a la derecha de" en android

+4

La mejor forma de "ajustar los controles cuando la pantalla cambia la orientación" es el uso de dos archivos de diseño XML independientes, uno para el retrato (típicamente en 'res/layout /') y uno para el paisaje (típicamente en 'res/layout-land /'). – CommonsWare

Respuesta

76

se puede hacer algo como esto:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     params.addRule(RelativeLayout.RIGHT_OF, view.getId()); 
+1

cómo eliminar rightOf – Prasad

+0

@Prasad Puede eliminarlo con params.removeRule (RelativeLayout.RIGHT_OF); – startoftext

+0

'removeRule (..)' está disponible desde API 17. [para Prabs

2

Si se define una nueva LayoutParams, se pierde otras reglas.

Así que si lo que desea es cambiar o añadir una regla, haga lo siguiente:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view.getLayoutParams(); 
params.addRule(RelativeLayout.RIGHT_OF, targetView.getId()); 
view.setLayoutParams(params); 
Cuestiones relacionadas