【发布时间】:2016-06-22 03:30:33
【问题描述】:
我在 LinearLayout 中有一个 TextView。 文本视图的 XML
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/CLOUDS"
android:ellipsize="none"
android:maxLines="100"
android:minHeight="20dp"
android:minLines="1"
android:layout_margin="0dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:paddingTop="0dp"
android:textSize="14sp"
android:paddingBottom="0dp"
android:layout_weight="10"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:singleLine="false"
android:scrollHorizontally="false"
android:inputType="textCapSentences|textMultiLine"
/>
在右侧,我们看到设置了文本的 textview:"Campanario Blanco\nMistral Ice\nMistral" 最后一个词没有显示。
在左边我们有另一个重量为 10 的文本视图。 两者都放置在线性布局中。
LinearLayout linearLayout = new LinearLayout(context.mContext);
LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ll.topMargin = 2;
ll.bottomMargin = 0;
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setLayoutParams(ll);
linearLayout.setPadding(0, 0, 0, 0);
bubble.addView(linearLayout);
现在如果我将视图的内容更改为 "Campanario Blanco\nMistral Ice\nMistral\nMalibu" 现在 'mistral' 是可见的,但新的最后一个作品 'Mailbu' 不可见。
如图所示,总行数等于 \n 的总和,但它没有考虑到第一个字符串的换行。 如果我们删除长文本,它会按预期工作。 “Mistral Ice\nMistral\nMalibu”
【问题讨论】:
-
你在哪里设置行数?
-
我没有行数。我将高度设置为 wrap_text。关于行数的信息,只是对它是如何自动换行的推断。
-
奇怪。作为解决方法,您可以添加一个额外的换行符。 TextView 的错误?
-
是的,但可以说如果我设置“非常长的字符串 A\n 非常长的字符串 B\n 短字符串”我将不得不添加 2 行额外的行 - 这可以工作 - 但由于多个屏幕尺寸/resolutions 我不知道“非常长的字符串 A”是否使用一两行。
标签: android android-layout user-interface textview word-wrap