Если конструктор с шириной, высотой и весом не работает, попробуйте использовать конструктор с шириной и высотой.А затем вручную установите вес.
И если вы хотите, чтобы ширина была установлена в соответствии с весом, установите ширину как 0 в конструкторе.То же относится и к высоте.Ниже код работает для меня.
LinearLayout.LayoutParams childParam1 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT);
childParam1.weight = 0.3f;
child1.setLayoutParams(childParam1);
LinearLayout.LayoutParams childParam2 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT);
childParam2.weight = 0.7f;
child2.setLayoutParams(childParam2);
parent.setWeightSum(1f);
parent.addView(child1);
parent.addView(child2);