web-dev-qa-db-fra.com

Orientation dans le code

J'ai ce code dans mon application:

LinearLayout.LayoutParams params =
    new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);

et je veux juste définir l'orientation de LinearLayout à la verticale. L'équivalent en XML est:

Android:orientation="vertical"

Comment puis-je le faire dans le code, sans XML?

81
Greg

Vous ne pouvez pas changer l'orientation de LinearLayout en utilisant son LayoutParams. Cela ne peut être fait qu'avec un objet LinearLayout.

LinearLayout layout = /* ... */;
layout.setOrientation(LinearLayout.VERTICAL);
176
Michael

Vous pouvez utiliser comme celui-ci:

LinearLayout myll = (LinearLayout) findViewById(R.id.yourLinearLayout);
myll.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));
myll.setOrientation(LinearLayout.VERTICAL);
6
Balaji Khadake

Vous devez par exemple LinearLayout. Après cela, vous pouvez appeler setOrientation ()

LinearLayout myLayout = ...;
myLayout.setLayoutParams(new LayoutParams(LinearLayout.WRAP_CONTENT, LinearLayout.WRAP_CONTENT);
myLayout.setOrientation(LinearLayout.VERTICAL);

Cela devrait faire le travail :)

Pour plus d'informations, consultez le Android API .

4
dudeldidadum

Un exemple de travail ci-dessous (c'est LayoutParams.WRAP_CONTENT, PAS LinearLayout.WRAP_CONTENT)

myLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myLayout.setLayoutParams(layoutParams);
2
Tia

Si quelqu'un d'autre arrive ici comme moi à la recherche de la réponse pour Xamarin, l'équivalent est:

LinearLayout layout = /* ... */;
layout.Orientation = Orientation.Vertical;
layout.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);
2
stovroz