我有一个 LinearLayout,我可以在其中以编程方式附加 TextView 。问题在于 TextView 的数量和内容(每个 View 中一个词)是动态的。 如果当前行已填充,我如何开始将下一个 TextView 附加到新行?
想要:
One Textview for each
word almost like a
page in a book
这个例子应该给出 12 个 TextView ,在“each”和“a”之后换行,因为“word”和“page”太长以适应上一行。
我的代码是:
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(15, 0, 0, 0); // llp.setMargins(left, top, right, bottom);
for(int k=0; k<words.size(); k++)
{
TextView tv = new TextView(this);
tv.setTypeface(font);
tv.setText(words.get(k));
tv.setTextSize(20.0f);
tv.setLayoutParams(llp);
tv_holder_layout.addView(tv); //Add view to layout
wordTextViews.add(tv); //Add TextView to arraylist, to be able to find it later
}
“tv_holder_layout
”目前是简单的LinearLayout
(水平)...
最佳答案
您将需要一个垂直的 LinearLayout
来容纳其他 LinearLayout
,每个 LinearLayout
代表一条线。
您可以在通过调用渲染之前评估 TextView 的宽度
view.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int width = view.getMeasuredWidth();
知道宽度后,您可以添加 View ,具体取决于每行的宽度
关于android - 在多行上添加多个 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728729/