layoutLelout的layout_below和weightsum以编程方式

Mus*_*eed 4 android android-layout android-linearlayout android-relativelayout

LinearLayout是以RelativeLayout编程方式创建的.我想要做的是分配weigtsumin LinearLayout并想要设置layout_above属性.问题是weightSum可用的,LinearLayout.LayoutParams并且layout_above可用RelativeLayout.LayoutParams.目前,我在做

LinearLayout ll_menu_code = new LinearLayout(this);
        ll_menu_code.setId(1001);
        LinearLayout.LayoutParams parmas_ll_menu_code = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 2f);
        parmas_ll_menu_code.setMargins(0, 20, 0, 0);
        ll_menu_code.setLayoutParams(parmas_ll_menu_code);
Run Code Online (Sandbox Code Playgroud)

哪个设置了weightSum.怎么设置layout_above?应该如何设置这两个属性?

我想以xml编程方式创建以下布局

<LinearLayout
                                android:layout_below="@id/ll_menu_code"
                                android:id="@+id/ll_quantity"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_marginTop="20dp"
                                android:weightSum="5">
Run Code Online (Sandbox Code Playgroud)

Fab*_*aul 5

如果你想添加LinearLayoutRelativeLayout程序,则必须创建的实例RelativeLayout.LayoutParams,而不是LinearLayout.LayoutParams因为LinearLayout是孩子Relativelayout

所以你的代码必须是

LinearLayout ll_menu_code = new LinearLayout(this);
    ll_menu_code.setId(1001);
    ll_menu_code.setWeightSum(2f);        

    RelativeLayout.LayoutParams parmas_ll_menu_code = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    parmas_ll_menu_code.setMargins(0, 20, 0, 0);
    parmas_ll_menu_code.addRule(RelativeLayout.BELOW, 1001);

    ll_menu_code.setLayoutParams(parmas_ll_menu_code);
Run Code Online (Sandbox Code Playgroud)

我希望它有帮助..