2012-08-22 58 views
0

我在其中一項活動中有兩個表格行。第一行將始終包含2個textview,第二行可能包含一個或兩個textview(取決於userinput)。每當我在第二行有一個textview時,我試圖將它跨越兩列。我正在嘗試這件事Android - Dynamic ColSpan無法正常工作

TableRow.LayoutParams param = (LayoutParams)editText.getLayoutParams(); 
param.span = 2; 
txtView.setLayoutParams(param); 

但它不工作。會發生什麼情況是,第一行中的第二個txtview被推出屏幕。那麼這裏有人能告訴我哪裏出錯了嗎?

回答

5

我做了這個例子,希望它對你有所幫助。

TableLayout table = (TableLayout)findViewById(R.id.table_id_in_xml); 
    TableRow row = new TableRow(this); 
    TableRow row2 = new TableRow(this); 
    TextView col1, col2, col3;   

    row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
    row2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 

    col1 = new TextView(this); 
    col2 = new TextView(this); 
    col3 = new TextView(this); 

    col1.setText("col1"); 
    col2.setText("col2"); 
    col3.setText("col3"); 

    row.addView(col1); 
    row.addView(col2); 
    row.addView(col3); 

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

    //HERE IS WHAT YOU NEED 
    TableRow.LayoutParams params = (TableRow.LayoutParams) row2.getLayoutParams(); 
    params.span = 3; //amount of columns you will span 

    col1 = new TextView(this); 

    col1.setText("span on col1 makes it bigger than the others"); 
    col1.setLayoutParams(params); 
    row2.addView(col1); 

    table.addView(row2, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));