2015-10-26 40 views
1

我正在以編程方式填充TableLayout中的行。每行包含3個TextView,但它們水平對齊,我希望它們垂直。Android - 以垂直對齊的項目編程添加TableRows

TableLayout table = (TableLayout) findViewById(R.id.tableLayout_customers); 
TableRow row = new TableRow(this); 
row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); 

TextView tw_name = new TextView(getApplicationContext()); 
TextView tw_email = new TextView(getApplicationContext()); 
TextView tw_phone = new TextView(getApplicationContext()); 

tw_name.setText("Mr Foo"); 
tw_email.setText("[email protected]"); 
tw_phone.setText("123"); 

row.addView(tw_name); 
row.addView(tw_email); 
row.addView(tw_phone); 

table.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); 

我已經試過這樣:

row.setGravity(Gravity.CENTER_VERTICAL); 
row.setOrientation(LinearLayout.VERTICAL); 

..但是這不是它,顯然。有任何想法嗎??

回答

0

而不是插入TableRow,插入另一個TableLayout並將您的項目放入此第二個佈局。 您對名稱TableRow似乎意味着其中的每個元素將被放入新行的事實感到困惑。但事實並非如此。 TableRow的意思是「這是一個新的行」。所以TableRow創建一個新行,其內部的所有項目都是...在這個新行上(水平對齊)