Linearlayoutに2つのチェックボックスを動的に追加します。次に、これらの線形レイアウトがRelativelayoutで次々に追加されます。チェックボックスの重みは、線形レイアウトの幅の50%を占めるように設定されています。さて、高さが一致しなければ、より大きな高さのチェックボックスの底が消えます。これを解決するには?LinearLayoutの高さを子コンポーネントの最高高さにするにはどうすればいいですか?
とコード:
LinearLayout ll;
LinearLayout.LayoutParams lp;
CheckBox ch;
int id = 1200, i, j;
for (i = 0, j = 0; i < selections.size() - 1; i += 2, j += 2) {
ll = new LinearLayout(NotificationSettings.this);
lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ch = new CheckBox(NotificationSettings.this);
lp.weight = 1.0f;
ch.setLayoutParams(lp);
ch.setText(selections.get(i));
ch.setChecked(isSelected);
ch.setTextColor(color);
ch.setId(j);
ll.addView(ch);
ch = new CheckBox(NotificationSettings.this);
ch.setLayoutParams(lp);
ch.setText(selections.get(i + 1));
ch.setChecked(isSelected);
ch.setTextColor(color);
ch.setId(j + 1);
ll.addView(ch);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
if (id == 1200)
p.addRule(RelativeLayout.BELOW, addBelow);
else
p.addRule(RelativeLayout.BELOW, id);
ll.setLayoutParams(p);
ll.setId(++id);
rl.addView(ll);
}
編集: 両方のチェックボックスを持っている複数の行:
レイアウトXMLコードに
WRAP_CONTENT
変更
にあなたの相対的なレイアウトのparams'の高さを変更してみてください? –