2012-06-23 75 views
2

我發現了很多關於TableRow保證金的解決方案,但是當我嘗試行時根本沒有保證金。如何在TableRow之間設置保證​​金android

這是我的代碼:

 TableLayout table = (TableLayout)findViewById(R.id.myTableLayout); 

     for (int i = 0; i < 3; i++) { 
      TableRow tr = new TableRow(this); 
      LayoutParams layoutParams = new LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
      int leftMargin=110; 
      int topMargin=100; 
      int rightMargin=100; 
      int bottomMargin=100; 
      layoutParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); 
      tr.setLayoutParams(layoutParams); 
      tr.setBackgroundResource(R.drawable.shelf_bar); 

      table.addView(tr, new TableLayout.LayoutParams(
        LayoutParams.FILL_PARENT, 
        LayoutParams.FILL_PARENT)); 
     } 

這是我期望的結果:

enter image description here

請人指出我的錯誤了。由於

回答

0

使用這可能

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

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

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

tr.setLayoutParams(tableRowParams); 
+0

它仍然不工作! – Huppo

+0

你可以嘗試用一些小的代碼進行測試,如代碼 –

+0

我的代碼目前是非常小的,在XML文件中只有一個簡單的表格,而我的問題中的代碼是一切與Java代碼 – Huppo

2

這是工作:

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); 

您需要將您的TableRow添加到TableLayout再次通過佈局參數!

相關問題