2016-04-13 11 views
0

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?

enter image description here

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:

enter image description here

+0

düzen xml kodları için WRAP_CONTENT

Değişikliği

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 

için Bağıl Düzeni PARAMS' yüksekliğini lütfen değiştirmeyi deneyin? –

cevap

0

sen emin misin Burada bir ekran görüntüsü var Doğrusal Düzen'in altındaki yükseklik Yukarıdaki Doğrusal Düzeni kapsayacak kadar büyük değil?

Ya

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
+0

WRAP_CONTENT işe yaramadı. Ve yukarıdaki ekran görüntüsünde, daha fazla Linearlayouts olmadığını görebilirsiniz. – alu

+0

Görüntünüzde vurguladığınız görüntünün altında yer alıyor. "Seçme Tipi" olan kutunun Yerleşim Düzeni ve sağdaki dişli düğmesi. – ljpv14

+0

Aşağıdaki mizanpajın sollamadığını düşünüyorum. Soruyu, çok satırlı onay kutularını gösteren bir ekran görüntüsüyle düzenledim. Bak, sorun burada gerçekleşmiyor. – alu

İlgili konular