如何防止Android TextView将特定模式后面的文本分成多行?

时间:2015-08-18 16:26:18

标签: android textview linewrap

我正在创建一个Android应用,我需要提供一些数据。数据采用文本格式,并将在TextView中显示,以下是如何格式化的示例:

  

有些词,有些词,甚至更多/词

我的问题是,当句子足够长时,TextView会自动将文本包装成两行。我希望这个换行发生,但不是在它正在发生的地方。换行可以在偶数 more / words 之间的空格处创建,或者在中的斜线之后创建更多/单词
但我希望在逗号后面的换行符(更多/单词)之前发生换行符。空间也一样。 基本上,我希望文本不会在任何其他地方换行,而不是在任何逗号之后。

以下是一些关于如何包装文本的示例,以及我在每种情况下的需求。

实施例

  

一些文字,一些文字,一些文字   更/文本

通缉结果

  

一些文字,一些文字,
  更多/文本

实施例

  

一些文字,一些文字,一些更多/
  文本

通缉结果

  

一些文字,一些文字,
  更多/文本

实施例

  

有些文字,有些文字   文字,更多/
  文本

通缉结果

  

一些文字,
  一些文字,
  更多/
  文本

我查看了TextView类的Android源代码,并尝试找到换行的地方,以便我可以覆盖该方法,并以某种方式添加我自己的"规则& #34;为此,但我无法找到它。我也用Google搜索,但我找不到任何有用的东西。

希望它足够清楚!

1 个答案:

答案 0 :(得分:0)

为此您可以使用 在设置文本时df1 <- structure(list(id = 1:3, a1 = c(21L, 23L, 29L), a2 = c(50L, 45L, 88L), a3 = c(28L, 15L, 33L), a4 = c(19L, 22L, 32L), a5 = c(15L, 20L, 21L), b1 = c(24L, 25L, 78L), b2 = c(90L, 45L, 32L), b3 = c(40L, 34L, 33L), b4 = c(35L, 31L, 45L), b5 = c(20L, 22L, 21L)), .Names = c("id", "a1", "a2", "a3", "a4", "a5", "b1", "b2", "b3", "b4", "b5"), class = "data.frame", row.names = c(NA, -3L))

示例:

Html.fromHtml("")

结果:

  

第一行,

     

第二行