grgvn
grgvn

Reputation: 1329

Layout orientation in code

I have this code in my application:

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

and I just want to set the orientation of the LinearLayout to vertical. The equivalent in XML is:

android:orientation="vertical"

How can I do it in the code, without XML?

Upvotes: 99

Views: 108735

Answers (6)

Balaji Khadake
Balaji Khadake

Reputation: 3479

You can use like this one:

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

Upvotes: 13

stovroz
stovroz

Reputation: 7095

In case anyone else arrives here like me looking for the answer for Xamarin, the equivalent is:

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

Upvotes: 2

Yama Raahi
Yama Raahi

Reputation: 7

Simply use as follow :-

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

2 means Vertical, 1 is used for horizontal.

Upvotes: -7

Tia
Tia

Reputation: 95

A working sample below (it's LayoutParams.WRAP_CONTENT, NOT LinearLayout.WRAP_CONTENT)

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

Upvotes: 2

dudeldidadum
dudeldidadum

Reputation: 1281

You need to instance LinearLayout. After that you can call setOrientation()

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

That should do the job :)

For more infos check the Android API.

Upvotes: 4

Michael
Michael

Reputation: 54725

You can't change LinearLayout's orientation using its LayoutParams. It can be done only with a LinearLayout object.

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

Upvotes: 206

Related Questions