【发布时间】:2010-10-22 21:55:16
【问题描述】:
我有一个 Activity,我想在其中显示占据应用顶部四分之一的标题并显示一组动态文本。在某些情况下,它会全部放在一行上,我希望字体大小变大,这样它就大且易于阅读。在某些情况下,它会位于多行上(通常少于 4 行)并且需要更小。
复杂之处在于,如果我在 setText 中明确设置换行符,有时它会在我没想到的地方插入一个换行符,即:
"我的第一行文字\n我的第二行文字" 可能会变成(在这个版本中正确调整): “我的第一行 文本 我的第二行 文字”我不确定如何阻止 TextView 尝试插入换行符或让它只负责格式化整个内容。如果我将一些文本设置为一个非常长的单词,它将在中间的某个选定点插入一个换行符。有时我只是随机获取最后几行文本。
我是否应该明确地将字体大小设置为非常小以使其布局正确,然后手动调整大小?我应该为此使用“最佳实践”吗?如果我将字体大小设置为相当大的字体,它会起作用,但很高兴弄清楚这样做的“正确”方法是什么。而且我宁愿不必手动添加 4 个单行 TextViews 并自己格式化它们。
我使用的布局xml是:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginTop="10dip"
android:layout_marginRight="8dip"
android:singleLine="false"
android:ellipsize="marque"
android:gravity="right|bottom"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="30sp"
/>
【问题讨论】:
-
嗯,不太清楚你想做什么。您想调整文本大小以填充文本框吗?你为什么要添加换行符?只需设置大小,放入文本,然后换行即可。
-
你放了多少尺寸才能使它真正适合整个文本框?如果您选择的尺寸太大,TextView 会决定在您的文本中截断/插入新行(我不确定它是如何决定的)。如果您选择一个小尺寸并且不给自己添加新行,那么很难调整它的大小,而无需基本上逐步检查每个字体大小并让它每次都重新排列文本(插入新行)。如果您只是防止 TextView 弄乱事物并自己调整大小/插入新行,那就太好了。
标签: android textview android-layout android-ui sizing