2011-01-02 23 views
15

için programsal olarak ayarlanmış marjı Kodda dinamik olarak oluşturulmuş TableRows var ve bu TableRows için kenar boşlukları ayarlamak istiyorum. TableRow

Benim TableRows aşağıdaki gibi oluşturulur:

// Create a TableRow and give it an ID 
     TableRow tr = new TableRow(this);  
     tr.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     Button btnManageGroupsSubscriptions = new Button(this); 
     btnManageGroupsSubscriptions.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 40)); 

     tr.addView(btnManageGroupsSubscriptions); 
     contactsManagementTable.addView(tr); 

nasıl dinamik olarak bunlar için kenar boşluklarını ayarlarım?

cevap

61

LayoutParams'ı doğru şekilde kurmanız gerekir. Marj, bir tablonun özelliğidir ve TableRow değil, bu yüzden LayoutParams'ta istenen kenar boşluklarını ayarlamanız gerekir.

İşte bir örnek kod:

TableRow tr = new TableRow(this); 
TableLayout.LayoutParams tableRowParams= 
    new TableLayout.LayoutParams 
    (TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT); 

int leftMargin=10; 
int topMargin=2; 
int rightMargin=10; 
int bottomMargin=2; 

tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); 

tr.setLayoutParams(tableRowParams); 
+0

Çalışıyor! Tnx !!! – ofirbt

+4

Bir textView hakkında ne düşünüyorsunuz? textView için setMargins undefined. – Jaseem

+0

Çalışmadı. Ancak, aşağıda Mik'nin cevabı işe yaradı ve kabul edilen cevap olmalıdır – Zvi

7

Bu çalışıyor:

Sen TableLayout düzen parametreleri tekrar geçirerek için TableRow eklemeniz gerekir
TableRow tr = new TableRow(...); 
TableLayout.LayoutParams lp = 
new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 
          TableLayout.LayoutParams.WRAP_CONTENT); 

lp.setMargins(10,10,10,10);    
tr.setLayoutParams(lp); 

------ 

// the key is here! 
yourTableLayoutInstance.addView(tr, lp); 

!

+1

Kabul edilen cevap olmalıydı. Cevaptaki son satır olmadan 'yourTableLayoutInstance.addView (tr, lp);' – Zvi

İlgili konular