【问题标题】:can the layout of text in android views be controlled?可以控制android视图中文本的布局吗?
【发布时间】:2011-04-14 22:08:35
【问题描述】:

我希望在文本视图或类似视图中逐行格式化文本。我希望能够逐行对齐和格式化,几乎就像一个 word 文档(尽管没有那么广泛)

我基本上需要能够有一个连续的文档,其中一些部分右对齐,一些部分居中。有些大胆,有些不大胆,有些带有彩色背景和一些白色。还允许用户选择字体。

请有人推荐一个体面的方法。

谢谢

【问题讨论】:

    标签: android text formatting


    【解决方案1】:

    TextView/EditText 对由各种样式跨度对象描述的相当丰富的文本进行操作:http://developer.android.com/reference/android/text/style/package-summary.html

    例如,您可以使用它来构建包含各种样式跨度的文本:http://developer.android.com/reference/android/text/SpannableStringBuilder.html

    SpannableStringBuilder 是一个 CharSequence,因此可以设置为 TextView 中的文本。虽然更多时候您可能只想使用 TextView.getEditableText() 将 Editable 接口返回到文本视图内部的文本,从而允许您修改其内容,包括样式跨度。

    TextView 通过样式跨度支持您所要求的大部分内容,尽管对齐是按段落而不是每行应用的。 (每行很奇怪......我认为即使是 Word 也不会这样做?)

    【讨论】:

    • 我想我应该澄清一下。根据你所说的更多的部分,或者我猜你是按段落说的,我的意思是。在这种情况下,您所说的可能会起作用。如果我能准确地告诉你我正在努力实现的目标可能会更容易,但目前我不想放弃它。假设我想要一条带有粗体背景的单行,右对齐。我想要一条以粗体为中心的单行,但也限制为给定长度。然后我想要一个居中的段落,行长,这样它就可以换行并且不会一直穿过页面。
    • 可能的界限取决于样式。粗体、颜色等字符样式可以应用于任何字符范围。需要将对齐等段落样式应用于段落范围。没有用于应用样式的“线条”的基本概念,因为线条纯粹是文本视图边界内布局的副作用,而不是文本的结构部分。
    【解决方案2】:

    我建议使用多个 TextView。如果您真的需要不同的文本,可能每行一个。您可以轻松地自定义每一个。如果您还没有,请查看文档:http://developer.android.com/reference/android/widget/TextView.html
    然后,您可以根据需要使用 RelativeLayout 或 LinearLayout 来定位它们。只要问你是否还有其他问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多