вы не используете params
, я полагаю, вы намеревались использовать
tt.setLayoutParams(params);
вместо
tt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
Однако, таким образом TextView
s будут перекрывать друг друга, поэтому вы также можете захотеть .addRule()
для вертикального выравнивания внутри вашего цикла.
редактировать
for(int i =0 ; i<tags.size();i++){
TextView tt = new TextView(this);
tt.setText(tags.get(i));
tt.setId(i+1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
if (i == 0)
params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
else
params.addRule(RelativeLayout.BELOW, i);
tt.setLayoutParams(params));
tt.setBackgroundColor(Color.RED);
ll.addView(tt);
}
краткое объяснение : вы устанавливаете идентификаторы для каждого TextView
(как объяснено здесь , RelativeLayout разрешает только идентификаторы для каждого ребенка), и поэтому следующий будет ниже предыдущего. Первый выравнивается по верху родителя. Я не проверял это, но, по крайней мере, это отправная точка.