防止Word在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(" ", "&#160"); tv.setText(Html.fromHtml(fullString)); tv.setTextSize(32f); tv.setTextColor(getResources().getColor(R.color.text)); layout.addView(tv); 

Solutions Collecting From Web of "防止Word在TextView中被破坏"

问题在于以下行

fullString = fullString.replaceAll(“”,“&#160”);

删除它,它会按需要工作,你不需要用HTML代码replace空间, fromHtml会为你做

你的代码的问题是这一行:

 fullString = fullString.replaceAll(" ", "&#160"); 

通过这样做,可以将所有“普通”空间replace为不可破坏的空间( &nbsp )。 由于这些空间是不可破坏的 ,所以它们防止了换行。

只要删除这条线 ,文字就不会再打破了。

 android:scrollHorizontally="false" 

在您的XML或调用您的TextView条目

 setHorizontallyScrolling(false); 

文档在这里 。

我们可以在某些情况下使用Webview,并certificatehtml / css的文本帮助,然后设置文本。