0

コンテナとしてrelativelayoutがあり、テキストと画像を設定しました。次に、このrelativelayoutを1つの線形レイアウトに2回addView()します。すべて問題ありませんが、常に互いに固定されている2つのrelativelayoutを分離することはできません。コードは次のとおりです。

LinearLayout

layout = new LinearLayout(context);
LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);

ll.setMargins(5, 5, 5, 5);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setPadding(5, 5, 5, 5);
layout.setLayoutParams(ll);
layout.setId(i);

layout.addView(m1.box);
layout.addView(m2.box);

ここで、m1とm2は次のとおりです。RelativeLayout:

box = new RelativeLayout(context);

RelativeLayout.LayoutParams rl = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);

rl.setMargins(5, 5, 5, 5);
rl.width = 125;
rl.height = 125;

box.setId(i);
box.setPadding(5, 5, 5, 5);
box.setBackgroundColor(color1);
box.setLayoutParams(rl);
//add some text and image

m1をm2から分離する方法は?今、彼らはOOのように見えます。スペースO_Oを追加する必要があります。

4

1 に答える 1

1

LinearLayoutまず、親レイアウトがであり、LayoutParams定義したものがであるため、これは機能しませんRelativeLayoutLayoutParams子を配置する方法と場所を親に指示するため、子ではなく親のタイプと一致する必要があります。

第二に、この種の間違いを防ぐためaddView(View v, LayoutParams lp)に代わりに使用してください。addView(View v)

于 2012-11-26T19:49:59.423 に答える