match_parent не заполняет родительский! - PullRequest
7 голосов
/ 05 января 2011

У меня есть LinearLayout внутри TableRow. LinearLayout инициируется в коде следующим образом:

LinearLayout  mainRowLayout = new LinearLayout(this);
mainRowLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
TableRow tr = new TableRow(this);
tr.addView(mainRowLayout);

Проблема в том, что LinearLayout не заполняет родителя (который является TableRow). Прикрепленные изображения иллюстрируют проблему, как показано в hirarchyViewer для Android (зеленые прямоугольники - мои отметки).

"LinearLayout image"

Спасибо.

1 Ответ

13 голосов
/ 07 марта 2011

При программном создании макетов необходимо предоставить родительскому контейнеру инструкции по макету для дочернего элемента.

// child element
LinearLayout mainRowLayout = new LinearLayout(this);

// parent element
TableRow tr = new TableRow(this);

// parent element's instructions (layout params for main row)
TableRow.LayoutParams lopForMainRow = new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

tr.addView(mainRowLayout, lopForMainRow);

Дайте ему попробовать:]

...