代码中的布局方向

时间:2011-06-07 06:38:13

标签: android orientation android-linearlayout

我的应用程序中有这个代码:

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

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

android:orientation="vertical"

如果没有XML,我怎么能在代码中做到这一点?

6 个答案:

答案 0 :(得分:171)

您无法使用LinearLayout更改LayoutParams的方向。它只能使用LinearLayout对象来完成。

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

答案 1 :(得分:6)

您可以像这样使用:

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

答案 2 :(得分:4)

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

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

那应该做的工作:)

如需更多信息,请查看Android API

答案 3 :(得分: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);

答案 4 :(得分:2)

如果有人像我一样到达这里寻找Xamarin的答案,那么等同于:

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

答案 5 :(得分:-6)

只需使用如下: -

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

2表示Vertical,1表示horizontal