2011-07-27 66 views
6

我有一個名爲aTable的TableView。 initialiseDTable()將第一行紅色背景創建一個帶有固定標題行的TableView(不滾動)

GOAL

  1. 防止從滾動標題行(WORKING FINE

  2. 保持與每個TextView的寬度相同的標題行給出了感覺這是aTable的孩子(不工作

學嘗試

我的嘗試是滾動視圖之前創建的tableview和填充aTable然後提取標題行並將其插入作爲這個tableview的一個孩子。

代碼中添加標題行TO TABLE

public void initialiseDTable() { 
    LayoutInflater inflater = getLayoutInflater(); 
    TableRow row = (TableRow) inflater.inflate(R.layout.table_row, dTable, 
      false); 
    View v = (View) inflater.inflate(R.layout.table_cell, row, false); 
    TextView A = (TextView) v.findViewById(R.id.table_cell_text); 
    A.setText(tag1); 
    row.addView(v); 
    v = (View) inflater.inflate(R.layout.table_cell, row, false); 
    A = (TextView) v.findViewById(R.id.table_cell_text); 
    A.setText(tag2); 
    row.addView(v); 
    v = (View) inflater.inflate(R.layout.table_cell, row, false); 
    A = (TextView) v.findViewById(R.id.table_cell_text); 
    A.setText(tag3); 
    row.addView(v); 
    v = (View) inflater.inflate(R.layout.table_cell, row, false); 
    A = (TextView) v.findViewById(R.id.table_cell_text); 
    A.setText(tag4); 
    row.addView(v); 
    if (this.showEST) { 
     v = (View) inflater.inflate(R.layout.table_cell, row, false); 
     A = (TextView) v.findViewById(R.id.table_cell_text); 
     A.setBackgroundColor(Color.RED); 
     A.setText(tag5); 
     row.addView(v); 
    } 
    dTable.addView(row); 
} 

CODE

public void updateATable() { 
    aTable.removeAllViews(); 
    initialiseATable(); 
    for (int i = 0; i < newA.size(); i++) 
     aTable.addView(newA.get(i)); //newA is an ArrayList <TableRow> 
    View view = aTable.getChildAt(0); 
    aTable.removeViewAt(0); 
    aTableH.removeAllViews(); 
    aTableH.addView(view,new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
} 

XML

 <LinearLayout android:orientation="vertical" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      android:gravity="center" android:id="@+id/aLL"> 
      <TableLayout android:shrinkColumns="5" 
       android:stretchColumns="1,2,3,4" android:layout_height="wrap_content" 
       android:layout_width="wrap_content" android:id="@+id/aTableH"> 
      </TableLayout> 
      <ScrollView android:layout_width="fill_parent" 
       android:layout_height="wrap_content" android:id="@+id/aTableSV"> 
       <TableLayout android:shrinkColumns="5" 
        android:stretchColumns="1,2,3,4" android:layout_height="fill_parent" 
        android:layout_width="fill_parent" android:id="@+id/aTable"> 
       </TableLayout> 
      </ScrollView> 
     </LinearLayout> 

回答

5

我寫了一系列博客文章涵蓋了這個確切的問題。第一個是here並描述了類似的方法來回答已經給出的。然而,接下來的兩篇文章將介紹更加優雅的解決方案。

+0

我只是掠過,看到圖片似乎還不完美。我會很快讀到它..我已經實現它我的方式..你可以看看https://market.android.com/details?id=mobi.foo.beirutairport –

+0

謝謝@MarkAllison你的博客真的幫助我: ) –