Dans le développement Android, il est généralement préférable de définir l'interface utilisateur avec XML et le code de l'application en Java, en conservant le code de l'interface utilisateur distinct du code de l'application. Il y a des moments où il est beaucoup plus facile ou plus efficace de modifier (ou même de construire) l'interface utilisateur à partir du code Java. Heureusement, cela est facilement pris en charge dans Android.
Nous avons vu un petit exemple de modification de la disposition du code dans la recette précédente, où nous avons défini le nombre de colonnes GridView à afficher dans le code. Dans cette recette, nous allons obtenir une référence à l'objet LayoutParams pour modifier la marge pendant l'exécution.


Se préparer
Ici, nous allons configurer une mise en page simple avec XML et utiliser un objet LinearLayout.LayoutParams pour modifier les marges d'une vue pendant l'exécution.


Comment faire....
1. Ouvrez le fichier activity_main.xml et modifiez la disposition de RelativeLayout à LinearLayout. Cela ressemblera à ceci:
http://schemas.android.com/apk/res/ android" "><LinearLayout xmlns: android = "http://schemas.android.com/apk/res/ android"
http://schemas.android.com/tools" ">xmlns: tools = "http://schemas.android.com/tools"
android: layout_width = "match_parent"
android: layout_height = "match_parent">
</ LinearLayout>
2. Ajoutez un TextView et incluez un ID comme suit:
android: id = "@ + id / textView"
3. Ajouter un bouton et inclure un ID comme suit:
android: id = "@ + id / bouton"
4. Ouvrez MainActivity.java et ajoutez le code suivant à la méthode onCreate () pour configurer un écouteur d'événement onClick:
Bouton bouton = (Bouton) findViewByld (R.id.button); button.setOnClickListener (new View.OnClickListener () {
@Passer outre
public void onClick (Voir la vue) {
((TextView) findViewById (
R.id.textView)). SetText ("Changé à l'exécution!"); LinearLayout.LayoutParams params = (LinearLayout.
LayoutParams) view.getLayoutParams (); params.leftMargin + = 5;
5. Exécutez le programme sur un périphérique ou un émulateur.


Comment ça marche...
Chaque vue (et donc ViewGroup) est associée à un ensemble de paramètres de disposition. En particulier, toutes les vues ont des paramètres pour informer leur parent de la hauteur et de la largeur désirées. Ceux-ci sont définis avec les paramètres layout_height et layout_width. Nous pouvons accéder à ces informations de disposition à partir du code avec la méthode getLayoutParams (). Les informations de disposition comprennent la hauteur, la largeur, les marges et tous les paramètres spécifiques à la classe.
Dans cet exemple, nous avons déplacé le bouton à chaque clic en obtenant le bouton LayoutParams et en changeant la marge.