将LinearLayout的方向作为参数发送到方法-java Android Studio
我正在尝试创建一个方法,将新的LinearLayout添加到现有的LinearLayout。我想向这个方法发送一个参数,告诉它新的LinearLayout是垂直还是水平。这是我到目前为止所知道的,但“LinearLayout.Orientation”不是此参数类型的正确名称将LinearLayout的方向作为参数发送到方法-java Android Studio,java,android,android-layout,Java,Android,Android Layout,我正在尝试创建一个方法,将新的LinearLayout添加到现有的LinearLayout。我想向这个方法发送一个参数,告诉它新的LinearLayout是垂直还是水平。这是我到目前为止所知道的,但“LinearLayout.Orientation”不是此参数类型的正确名称 private LinearLayout addLinearLayout(View linearLayout, LinearLayout.Orientation orientation) { //Create new
private LinearLayout addLinearLayout(View linearLayout, LinearLayout.Orientation orientation)
{
//Create new horizontal linear layout and add to the specified linear layout
LinearLayout newLinearLayout = new LinearLayout(context);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20, 10, 0, 10);
newLinearLayout.setOrientation(LinearLayout.orientation);
((LinearLayout) linearLayout).addView(newLinearLayout, layoutParams);
return newLinearLayout;
}
这可能吗?如果是,我试图传递的参数类型是什么?
感谢您的帮助。布局的方向似乎由一个整数表示
private LinearLayout addLinearLayout(LinearLayout linearLayout, int orientation)
{
//Create new horizontal linear layout and add to the specified linear layout
LinearLayout newLinearLayout = new LinearLayout(context);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20, 10, 0, 10);
newLinearLayout.setOrientation(orientation);
linearLayout.addView(newLinearLayout, layoutParams);
}
// Then you can call your function like this
addLinearLayout(layout, LinearLayout.VERTICAL);
发件人:
公共方向(内部方向)
(……)
方向通过水平或垂直。默认值为水平
按如下方式调用此方法:
addLinearLayout(yourLinearlayout, LinearLayout.HORIZONTAL);
使用int作为方向值LinearLayout。方向是枚举的名称,但类型是int。另外,为什么要将LinearLayout强制转换为LinearLayout,它完全没有意义。强制转换是在我昨天找到的一些代码中进行的。我已经移除了它,你是对的,没有它也可以正常工作。如果我使用“int-orientation”,我在LinearLayout.orientation下面会出现一个错误,表示它必须是水平的或垂直的。LinearLayout.orientation没有意义,你应该只放orientation,下面的答案是正确的。实际上我确实需要强制转换-我需要将视图传递给方法而不是LinearLayout。然后可以强制转换为LinearLayout或ViewGroup,如果将方法参数设置为ViewGroup而不是View,可能会更好
addLinearLayout(yourLinearlayout, LinearLayout.HORIZONTAL);