TextView text = new TextView(v.getContext());
text.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, 1f));
(OR)
TextView tv = new TextView(v.getContext());
LayoutParams params = new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f);
tv.setLayoutParams(params);
.
1f обозначается как вес = 1; в соответствии с вашей потребностью вы можете дать 2f или 3f, представления будут перемещаться в соответствии с пространством. Для заданного расстояния между видами в линейном макете используйте weightsum для «LinearLayout».
LinearLayout ll_Outer= (LinearLayout) view.findViewById(R.id.linearview);
LinearLayout llInner = new LinearLayout(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FillParent, LinearLayout.LayoutParams.WrapContent);
llInner.Orientation = Orientation.Horizontal;
llInner.WeightSum = 2;
ll_Outer.AddView(llInner);
Я не упоминал об этом раньше, так что я извиняюсь. Но я попробовал это, прежде чем задавать свой вопрос. Это заставляет TextView исчезнуть из макета. Но, с положительной стороны, я обнаружил, что установка свойства stretch_columns для TableLayout равным 0 вызывает эффект, который я ищу (TextView слева, CheckBoxes справа). Спасибо за помощь. – eugene
Если вы импортируете XML-макет и не динамически создаете свой макет, вы можете его захватить следующим образом: TextView tv = (TextView) findViewById (R.id.your_textview_inside_the_lingleayout); tv.setLayoutParams (новый LinearLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.1f)); ' –
Чтобы установить вес макета программно, вместо' TableLayout.LayoutParams' следует использовать 'TableRow.LayoutParams'. См. Ответ @ Дордже. – Halil