7

Androidに問題があります。私はJavaでWeightパラメータを設定していますが、それは私が望むものとは正反対のことをしています。

これがコードです

LinearLayout container = new LinearLayout(context);
// some code ...
container.setWeightSum(1f);

View v1 = new View(context);
v1.setBackgroundColor(Color.parseColor("#ff0000"));
LinearLayout.LayoutParams p1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
p1.weight=0.1f;

View v2 = new View(context);
v2.setBackgroundColor(Color.parseColor("#000000"));
LinearLayout.LayoutParams p2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
p2.weight=0.9f;

container.addView(v1,p1);
container.addView(v2,p2);

コンテナレイアウトの間に黒い線を追加して、このプロセスを7回繰り返します。通常、左に小さな赤い列と大きな黒い列を取得する必要がありますが、このコードで取得するものは次のとおりです。

http://i.stack.imgur.com/PPgoy.png

なぜそれはコードの正反対をしているのですか?

4

2 に答える 2

11

ウェイト幅を使用する場合はゼロにする必要があります

コンテナ内の子供と一緒に幅0で試してください............。

 LinearLayout.LayoutParams p1 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);



LinearLayout.LayoutParams p2 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT);
于 2012-06-23T14:22:33.190 に答える
1

両方の幅を「wrap_content」に設定しています...ウェイトを使用する場合は、影響を受ける方向を「0dp」(またはプログラムで同等)に設定する必要があります。

于 2012-06-23T14:23:29.370 に答える