2016-10-27 16 views
9

Ben programlı bir Kısıtlama Düzeni manzarası eklemek için bir problem olan ve düzen çalışması için gerekli tüm kısıtlamaları kurmak ediyorum.Bir ConstraintLayout için görünümler ve kısıtlamalar nasıl programlanır?

Ben çalışmıyor şu anda ne var:

ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.mainConstraint); 
ConstraintSet set = new ConstraintSet(); 
set.clone(layout); 

ImageView view = new ImageView(this); 
layout.addView(view,0); 
set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60); 
set.applyTo(layout); 

ImageView bile düzenine görünmüyor. Bir RelativeLayout'a eklerken, bir çekicilik gibi çalışır.

İhtiyacım olan kısıtlamaları oluşturmak için ne yapabilirim, böylece düzenlerim yeniden çalışır?

cevap

19

ben size ImageView ekledikten sonra düzenini klonlamak gerektiğini düşünüyorum.

ConstraintLayout layout = (ConstraintLayout)fndViewById(R.id.mainConstraint); 
ConstraintSet set = new ConstraintSet(); 

ImageView view = new ImageView(this); 
layout.addView(view,0); 
set.clone(layout); 
set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60); 
set.applyTo(layout); 
+4

Neden bu işler? Bazı açıklamalar takdir edilecektir. Teşekkürler! Önce setine klonlama önce kısıt düzenine çocukların hepsi eklenmektedir, bu yüzden eklediğiniz tüm görünümleri dahildir @YonahKarp –

+3

. ID'nizi programlı olarak ayarlamanız gerektiğini belirtmek isterim, aksi halde tüm getId() ler -1 değerini döndürür –

İlgili konular