2010-06-12 11 views
33

Desidero impostare la proprietà "Layout a destra di" del controllo in fase di esecuzione in Android. In realtà, voglio regolare i controlli quando lo schermo cambia orientamento.imposta programmaticamente la proprietà "Layout to right of" in Android

+4

Il modo migliore per "regolare i controlli quando lo schermo cambia orientamento" è quello di utilizzare due file di layout XML separati, uno per il ritratto (tipicamente in 'res/layout /') e uno per landscape (tipicamente in 'res/layout-land /'). – CommonsWare

risposta

76

si può fare qualcosa di simile:

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

come rimuovere rightOf – Prasad

+0

@Prasad Puoi rimuoverlo con params.removeRule (RelativeLayout.RIGHT_OF); – startoftext

+0

'removeRule (..)' è disponibile dall'API 17. [per Prabs

2

Se si definisce un nuovo LayoutParams, si perde altre regole.

Quindi, se si vuole solo modificare o aggiungere una regola, fare questo:

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