防止文字在 TextView 中被打断
Prevent word from being broken in TextView
如何防止 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);
添加
android:scrollHorizontally="false"
到您 XML 中的 TextView 条目或致电
setHorizontallyScrolling(false);
文档here.
问题出在下一行
fullString = fullString.replaceAll(" ", " ");
删除它,它将根据您的需要工作,您不需要将 space 替换为 html 代码,fromHtml
会为您完成
我们可以在某些情况下使用Webview,并调整html/css的文本帮助,然后设置文本。
你的代码有问题是这一行:
fullString = fullString.replaceAll(" ", " ");
通过这样做,您将所有 "normal" 空格替换为不可断开的空格 ( 
)。由于这些空格 不可断行,它们可以防止换行。
只需删除这一行,单词就不会再分成两半了。
如何防止 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);
添加
android:scrollHorizontally="false"
到您 XML 中的 TextView 条目或致电
setHorizontallyScrolling(false);
文档here.
问题出在下一行
fullString = fullString.replaceAll(" ", " ");
删除它,它将根据您的需要工作,您不需要将 space 替换为 html 代码,fromHtml
会为您完成
我们可以在某些情况下使用Webview,并调整html/css的文本帮助,然后设置文本。
你的代码有问题是这一行:
fullString = fullString.replaceAll(" ", " ");
通过这样做,您将所有 "normal" 空格替换为不可断开的空格 ( 
)。由于这些空格 不可断行,它们可以防止换行。
只需删除这一行,单词就不会再分成两半了。