Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将LinearLayout的方向作为参数发送到方法-java Android Studio_Java_Android_Android Layout - Fatal编程技术网

将LinearLayout的方向作为参数发送到方法-java Android Studio

将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

我正在尝试创建一个方法,将新的LinearLayout添加到现有的LinearLayout。我想向这个方法发送一个参数,告诉它新的LinearLayout是垂直还是水平。这是我到目前为止所知道的,但“LinearLayout.Orientation”不是此参数类型的正确名称

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);