我的应用程序中有这个代码:
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
我只想将LinearLayout的方向设置为垂直。 XML中的等价物是:
android:orientation="vertical"
如果没有XML,我怎么能在代码中做到这一点?
答案 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
。