防止Word在TextView中被破坏
如何防止TextView
中的单词在不适合当前行时折断一半,而是移动到下一行。防止Word在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);
问题是在下面的行
fullString = fullString.replaceAll(””, “&#160”);
删除它,它会工作,因为你需要,不需要用HTML代码来代替空间,fromHtml
会为你做它
你如何在文本之间放置空格。例如,使用Html.fromHtml()在TextView中放置“A ******* B”。 (请将星号当作空格)当我尝试时,TextView显示“A B”(单个空格)。 – User12111111
尝试'textView.setText(Html.fromHtml( “A B”));' – Vilen
没有运气。同样的结果。 – User12111111
添加
android:scrollHorizontally="false"
您TextView的条目你r XML或致电
setHorizontallyScrolling(false);
Docs here。
不工作,没有变化。 –
我们可以在某些情况下,使用网页视图和对齐文本帮助的HTML/CSS然后设置文本。
与您的代码的问题是这一行:
fullString = fullString.replaceAll(" ", " ");
通过这样做,你不易碎空间( 
)全部替换“正常”的空间。由于这些空间是不可破坏的,它们可以防止换行。
只要删除这条线和话不会再打破一半。
你给出的例子实际上会移到下一行。它只有在大字的情况下,比如15个字符奇怪的(或其他语言),我面临着你面临的问题。 或者你在给出的例子中也遇到过这个问题? – Droidekas
查看:https://github.com/grantland/android-autofittextview –
你试过'android:minLines'吗? – Droidekas