当TextView
中的单词不适合当前行而是移到下一行时,如何防止|android goo|
|gle kitkat |
中的单词分成两半。
|android |
|google |
|kitkat |
应该是
TextView
RelativeLayout
目前已使用以下代码添加到TextView tv = new TextView(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (16*scale + 0.5f);
tv.setPadding(dpAsPixels, 0, dpAsPixels, 0);
tv.setLayoutParams(layoutParams);
String fullString = "<b>" + user + ":</b> " + text;
fullString = fullString.replaceAll("\n", "<br />");
fullString = fullString.replaceAll(" ", " ");
tv.setText(Html.fromHtml(fullString));
tv.setTextSize(32f);
tv.setTextColor(getResources().getColor(R.color.text));
layout.addView(tv);
:
int i = 1;
foreach (LinkLabel item in this.Controls.OfType<LinkLabel>())
{
if ((i = 1 - i) == 0)
{
LinkLabel linkTemp = cType as LinkLabel;
Point pos = this.PointToScreen(linkTemp.Location);
pos = pictureBox1.PointToClient(pos);
linkTemp.Parent = pictureBox1;
linkTemp.Location = pos;
linkTemp.BackColor = Color.Transparent;
}
}
答案 0 :(得分:5)
问题出在以下一行
fullString = fullString.replaceAll(&#34;&#34;,&#34;&amp;#160&#34;);
删除它,它将按您的需要运行,您不需要用html代码替换空格,fromHtml
将为您执行此操作
答案 1 :(得分:2)
您的代码存在问题:
fullString = fullString.replaceAll(" ", " ");
通过这样做,您可以用不可破坏的空格( 
)替换所有“普通”空格。由于这些空格不可破坏,因此可以防止换行。
只需删除此行,单词就不会再破坏了一半。
答案 2 :(得分:0)
答案 3 :(得分:0)
我们可以在某些情况下使用Webview并证明html / css的文本帮助,然后设置文本。