代码中的布局方向


89

我的应用程序中包含以下代码:

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

我只想将LinearLayout的方向设置为垂直。XML中的等效项是:

android:orientation="vertical"

没有XML,如何在代码中实现?

Answers:


187

您无法LinearLayout使用其更改方向LayoutParams。只能用一个LinearLayout对象来完成。

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

8

您可以像这样使用:

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

4
第二行应该是myLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
abhyudayasrinet 2015年

4

您需要实例化LinearLayout。之后,您可以调用setOrientation()

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

那应该做的工作:)

有关更多信息,请检查Android API


2

下面的工作示例(它是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);

2

如果有人像我一样到达这里寻找Xamarin的答案,则等效为:

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

-6

只需使用如下:

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

2表示Vertical,1用于horizontal


1
为什么您会在答案被接受4年后回来并且给出更差的答案?您不应使用“ 2”。您应该使用在LinearLayout中定义的静态值,例如LinearLayout.Vertical。
Stealth Rabbi

因为我想知道我是对还是错。:)现在我了解到,最好使用linearLayout中定义的静态值。:-)
Yama Raahi

那为什么不仅仅看正确的答案呢?不应使用堆栈溢出来将您的猜测作为答案。如果您不知道如何正确回答问题,请不要写答案。现在,当有人进入此页面时,他们必须知道忽略您的错误答案,并寻求更好的答案。这就是为什么你被低估了的原因。
Stealth Rabbi'3

我只是想贡献我的朋友,就我而言,这个人很奏效,我为他发表了评论。顺便说一句,如果使用2和1是错误的,那为什么它仍然存在呢?
Yama Raahi

之所以存在,是因为它是@StealthRabbi指出的,附加到LinearLayout中定义的静态常量的原始值。但是,永远不要使用这些值。
丹尼尔·莫利纳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.