Taberow в Tablelayout всегда отображается как «wrap_content»

У меня есть пустой Tablelayout в xml и добавление таблицы программно.

Ширина строки всегда ведет себя как «wrap_content», я что-то упустил.

макет таблицы в layout.xml

<HorizontalScrollView
        android:id="@+id/horizontalScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" >
<TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ff0000">
            </TableLayout>
 </HorizontalScrollView>

Java-код:

TableLayout mRestable= (TableLayout) findViewById(R.id.tableLayout1);
TableRow row = new TableRow(this);

TextView name_tw = new TextView(this);
name_tw.setTextSize((float) 16.8);
name_tw.setText(aName);
name_tw.setGravity(Gravity.LEFT);
name_tw.setPadding(10, 10, 10, 10);

if(aValue==null)
{
    name_tw.setBackgroundColor(0xffa09f9f);
    name_tw.setTextSize((float) 17.8);
    name_tw.setGravity( Gravity.CENTER);
    name_tw.setTypeface(Typeface.DEFAULT_BOLD);

}

row.addView(name_tw);        


mRestable.addView(row,new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
                        TableLayout.LayoutParams.WRAP_CONTENT)); 

как установить строку как «fill_parent»


person user755    schedule 06.09.2013    source источник


Ответы (1)


У вас есть HorizontalScrollView. Как вы думаете, какой ширины будет дочерний элемент шириной match_parent? match_parent в представлении прокрутки игнорируется по какой-то причине.

Если вы хотите, чтобы таблица заполняла экран по горизонтали, даже если ее не нужно прокручивать, установите android:fillViewPort="true" на HorizontalScrollView.

person laalto    schedule 06.09.2013
comment
Спасибо за ответ, пожалуйста, добавьте ниже код, чтобы пометить ответ как полное решение вопроса. вместе с этим следует добавить textveiw layout_weight=1 вот код 'TableRow.LayoutParams _params = new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1f); name_tw.setLayoutParams(_params); name_tw.setTextSize((с плавающей запятой) 17,8);' - person user755; 06.09.2013