Linearlayout'a dinamik olarak iki Checkbox ekliyorum. Ardından bu Linearlayouts, bir Relativelayout'ta birbiri ardına eklenir. Onay kutularının ağırlıkları, her birinin Linearlayout genişliğinin% 50'sini alacağı şekilde ayarlanmıştır. Şimdi, eğer yükseklikleri eşleşmezse, büyük boylu onay kutusunun alt kısmı kaybolur. Bunu nasıl çözebilirim?LinearLayout yüksekliğinin, çocuk bileşeninin en yüksek yüksekliği olması nasıl sağlanır?
Ve kod:
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);
}
Düzenleme: hem onay kutuları olan birden çok satır:
düzen xml kodları için
WRAP_CONTENT
Değişikliği
için Bağıl Düzeni PARAMS' yüksekliğini lütfen değiştirmeyi deneyin? –