在多行上添加多个文本视图

Add several textviews over multiple lines

我有一个 LinearLayout,我可以在其中以编程方式附加文本视图。问题在于文本视图的数量和内容(每个视图中一个词)是动态的。 如果当前行已满,我如何开始将下一个文本视图附加到新行?

想要:

One Textview for each 
word almost like a 
page in a book

这个例子应该给出 12 个文本视图,在 "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 代表一条线。

您可以通过调用

在呈现之前评估文本视图的宽度
view.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int width = view.getMeasuredWidth();

知道宽度后,您可以添加视图,具体取决于每行的宽度