Ориентация макета в коде - PullRequest
81 голосов
/ 07 июня 2011

У меня есть этот код в моем приложении:

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

, и я просто хочу установить ориентацию LinearLayout в вертикальное положение.Эквивалент в XML:

android:orientation="vertical"

Как я могу сделать это в коде без XML?

Ответы [ 6 ]

175 голосов
/ 07 июня 2011

Вы не можете изменить ориентацию LinearLayout, используя LayoutParams.Это можно сделать только с помощью объекта LinearLayout.

LinearLayout layout = /* ... */;
layout.setOrientation(LinearLayout.VERTICAL);
6 голосов
/ 07 июня 2011

Вы можете использовать вот так:

LinearLayout myll = (LinearLayout) findViewById(R.id.yourLinearLayout);
myll.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));
myll.setOrientation(LinearLayout.VERTICAL);
4 голосов
/ 07 июня 2011

Вам необходимо использовать экземпляр LinearLayout. После этого вы можете вызвать setOrientation ()

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

Это должно сделать работу:)

Для получения дополнительной информации проверьте Android API .

2 голосов
/ 11 июля 2017

В случае, если кто-нибудь еще придет сюда, как я, в поисках ответа на Xamarin, эквивалент будет:

LinearLayout layout = /* ... */;
layout.Orientation = Orientation.Vertical;
layout.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);
2 голосов
/ 09 марта 2014

Рабочий образец ниже (это LayoutParams.WRAP_CONTENT, НЕ LinearLayout.WRAP_CONTENT)

myLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myLayout.setLayoutParams(layoutParams);
0 голосов
/ 26 декабря 2015

Просто используйте следующим образом: -

LinearLayout mlayout = new LinearLayout(context);
mlayout.setOrientation(2);

2 означает Vertical, 1 используется для horizontal.

...