android - 在多行上添加多个 TextView

标签 android user-interface android-layout textview

我有一个 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/

相关文章:

安卓编程风格

c# - 这个控件叫什么?

java - 如何将线性布局中的单选按钮放入 RadioGroup 中

android - 第二个布局在 android studio 中没有显示包含标签

android - 在线性布局中对齐和包装图像按钮

android - dagger2,我如何调用 SubComponent 的 @BindsInstance 表示方法..?

android - 如何禁用从移动浏览器上传文件的相机选项?

android - 数据库访问设计模式

java - 如何在不引发异常的情况下强制在 Activity 的 JTextField 中设置文本?

android - 精心设计的 Android 应用程序的开源示例?