Как я могу закрепить первый ряд TableLayout? - PullRequest
0 голосов
/ 30 августа 2018

Я показываю TableLayout с данными, первая строка - это имя столбца, а поскольку вторая строка - это данные, мне нужно закрепить первую строку, но я должен прокручиваться горизонтально, а данные (другие строки) - не вертикально , но данные (другие строки) только данные, должны быть как (по горизонтали, так и по вертикали), потому что всегда нужно видеть имя столбца.

Я делаю свою таблицу так:

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

//columns' name (first row)
TableRow column= new TableRow(this);
for(int i=0;i<lenght; i++){
TextView columnName = new TextView(this);
columnName.setText("Column "+i);
column.addView(columnName);
}

table.addView(column); //with this i add the first row with columns' name

//Data
for(int i=0;i<lenght; i++){
TableRow rowData = new TableRow(this);
TextView data= new TextView(this);
data.setText("data "+i);
rowData .addView(data);
table.addView(rowData );//add rows(since the second row)
}

С этой структурой я прокручиваю все таблицы:

->ScrollView
      ->HorizontalScrollView
            ->TableLayout  

1 Ответ

0 голосов
/ 31 августа 2018

Я исправляю заголовок, делая это:

<HorizontalScrollView>
    <TableLayout>
        <TableRow>
            <TableLayout>
                <--! Headers -->
            </TableLayout>
        </TableRow>
        <TableRow>
            <ScrollView>
                <TableLayout>
                    <--! Rows/Data -->
                </TableLayout>
            </ScrollView>
        </TableRow>
    </TableLayout>
</HorizontalScrollView>

Очевидно, что если вы хотите, чтобы это динамично, вы должны сделать то же самое, но с программированием. Как то так

Your xml:
<HorizonalScrollView>
    <TableLayout
     android:"@+id/tableMaster">
    </TableLayout>
</HorizonalScrollView>
-------------------------------------------------------------------------------------

Your jave code:

//it contains the TablesLayout
TableLayout tableFirst = (TableLayout) findViewById(R.id.tableMaster);
TableRow row1 = new TableRow(this);
TableRow row2 = new TableRow(this);

//The Header
TableLayout tableSecond = new TableLayout(this);
TableRow rowHeader = new TableRow(this);
tableSecond.addView(rowHeader);

//The Data    
ScrollView scroll = new ScrollView(this);//It makes this table scrollable vertically
TableLayout tableThird = new TableLayout(this);
TableRow rowData = new TableRow(this);
tableThird.addView(rowData);
scroll.addView(tableThird);

//Add the header
row1.addView(tableSecond);
tableFirst.addView(row1);

//Add the data scrollable
row2.addView(scroll);
tableFirst.addView(row2);

Вы должны поставить свою собственную логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...