代码中的布局方向

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

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

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

 android:orientation="vertical" 

如何在代码中执行此操作,而不使用XML?

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

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

你可以像这样使用:

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

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

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

这应该做的工作:)

有关更多信息,请查看Android API 。

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

如果有人像我这样来到这里寻找Xamarin的答案,那么相当于:

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

简单地使用如下:

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

2表示Vertical ,1表示horizontal