2012-01-10 3 views
1

Мне нужно разместить три столбца в TableLayout.Проблема выравнивания при внедрении TableRow

Следующий код создает заголовки строк таблицы &, затем заполняет значения в столбцах. Макет таблицы был определен в макете xml.

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

// Table Headers 
TextView firstNameHeader = new TextView(this); 
firstNameHeader.setGravity(Gravity.CENTER); 
TextView lastNameHeader = new TextView(this); 
lastNameHeader.setGravity(Gravity.CENTER); 
TextView ageHeader = new TextView(this); 
ageHeader.setGravity(Gravity.CENTER); 


// Adding the Table headers to Table Row 
TableRow empHeaderTableRow = new TableRow(this); 
empDetailsTableRow.addView(firstNameHeader); 
empDetailsTableRow.addView(lastNameHeader); 
empDetailsTableRow.addView(ageHeader); 

// Adding the Table Row to Table Layout 
tableLay.addView(empDetailsTableRow); 

// Adding Column Data 

for(int count = 0; count < empDetails.size ; count++){ 
TextView firstNameData = new TextView(this); 
firstNameData.setGravity(Gravity.CENTER); 
firstNameData.setText(...); 
TextView lastNameData = new TextView(this); 
lastNameData.setGravity(Gravity.CENTER); 
lastNameData.setText(...); 
TextView ageData = new TextView(this); 
ageData.setText(...); 
ageData.setGravity(Gravity.CENTER); 

TableRow empDataTableRow = new TableRow(this); 
empDataTableRow.addView(firstNameData); 
empDataTableRow.addView(lastNameData); 
empDataTableRow.addView(ageData); 
} 

// Adding the Table Row to Table Layout 
tableLay.addView(empDataTableRow); 

Существует проблема выравнивания с вышеуказанным кодом. Если какая-либо из таких данных, как имя, фамилия, превышает определенную длину, вся колонка смещается из экрана. В этом случае на экране отображается только один столбец, а остальные столбцы выходят за пределы экрана.

Я хочу установить фиксированную ширину столбца для трех столбцов, так что если какие-либо данные по отношению к определенному столбцу превысят длину, он будет усечен или отображен во второй строке &, остальные позиции столбца (выровненные) не будут нарушены ,

Нужно ли обрезать текст, если он превышает ширину столбца, или это можно сделать автоматически с помощью любого метода, уже доступного в TextView.

Любые подсказки/предложения приветствуются.

ответ

0

Чтобы решить эту проблему, вам необходимо установить ширину textView. Вы также можете использовать вес для этой цели.

+0

LayoutParams layout = new LinearLayout.LayoutParams (LayoutParams.FILL_PARENT, 20, (float) 1.0); Я устанавливаю макет для каждого TextView, добавляя textView.setLayoutParams (макет), т. Е. Предоставляя одинаковый вес всем столбцам, но имеющим проблему с отображением. – chiranjib

+1

LayoutParams layout = new LinearLayout.LayoutParams (0, LayoutParams.WRAP_CONTENT, (float) 1.0); – jeet

0

Вы можете использовать textview.setMaxLines (maxlines) и textview.setwidht(), чтобы исправить эту проблему.