У меня есть TableView с именем aTable. initialiseDTable () добавляет первую строку с КРАСНЫМ фоном
ЦЕЛЬ
Предотвращение прокрутки строки заголовка ( WORKING FINE )
Сохраняйте ширину строки заголовка для каждого TextView, что дает ощущение, что это дочерний элемент таблицы ( НЕ РАБОТАЕТ )
ATTEMP
Моя попытка состояла в том, чтобы создать табличное представление перед просмотром прокрутки и заполнить таблицу, затем извлечь строку заголовка и вставить ее как дочерний элемент этого представления таблицы.
КОД ДЛЯ ДОБАВЛЕНИЯ СТРОКИ ЗАГОЛОВКИ В ТАБЛИЦУ
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);
}
КОД
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>