TableRow, программно добавленный, не отображается - PullRequest
0 голосов
/ 30 декабря 2011

В моем макете xml у меня есть

    <TableLayout
         android:id="@+id/gridview"
         android:layout_height="fill_parent"
         android:layout_width="fill_parent" >
    </TableLayout>

и в действии

    setContentView(R.layout.main);


    /* Find Tablelayout defined in main.xml */
    TableLayout tl = (TableLayout)findViewById(R.id.gridview);
    /* Create a new row to be added. */
    TableRow tr = new TableRow(this);
    tr.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));
    /* Create a Button to be the row-content. */
    Button b = new Button(this);
    b.setText("Dynamic Button");
    b.setLayoutParams(new LayoutParams(
        LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT));
    /* Add Button to row. */
    tr.addView(b);
    /* Add row to TableLayout. */
    tl.addView(tr,new TableLayout.LayoutParams(
        LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT));

Но кнопка и текстовое представление в таблице не отображаются.Есть идеи почему?

Ответы [ 2 ]

3 голосов
/ 31 декабря 2011

Убедитесь, что вы используете LayoutParams из TableLayout, иначе ваш LayoutParams не повлияет на TableRow, что-то вроде этого:

TableRow tr = new TableRow(this);
tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.WRAP_CONTENT));

или просто импортируйте только TableLayout.LayoutParams, т. Е.

import android.widget.TableLayout.LayoutParams;
0 голосов
/ 31 декабря 2011

попробуйте удалить это:

TableRow tr = new TableRow(this);
    tr.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...