【问题标题】:TextView - how to make second line indentedTextView - 如何使第二行缩进
【发布时间】:2010-11-19 16:19:16
【问题描述】:

我想让我的 TextView 的第二行(以及第三、第四等)缩进,这可能吗?我事先不知道确切的 TextView 的文本。文本将没有换行符 ("\n") 字符 - TextView 会自动将其换行。

【问题讨论】:

  • 我不是 Android 专家,但您是否尝试过在每个换行符 ('\n') 字符后插入 \t 作为制表符?
  • 我编辑了我的问题,请看最后一句...

标签: android textview word-wrap


【解决方案1】:

另一种可能性是从 TextView 切换到 WebView,然后使用 CSS 将文本的 padding-left 设置为 20px 并将 text-indent 设置为 -20px。这应该将所有文本移动 20 像素,但第一行将被拉回 20 像素。

【讨论】:

  • public static void IndentEffect(WebView webViewv, String string) { webViewv.loadData("

    " + string.toUpperCase() + "

    ", "text/html", "utf-8"); WebSettings webSettings = webViewv.getSettings(); webSettings.setTextZoom(webSettings.getTextZoom() + 20); }
【解决方案2】:
public static void IndentEffect(WebView webViewv, String string) {
    webViewv.loadData("<html><p style=\"padding-left: 40px;text-indent: -20px;\">" + string.toUpperCase() + "</p></html>", "text/html", "utf-8");
    WebSettings webSettings = webViewv.getSettings();
    webSettings.setTextZoom(webSettings.getTextZoom() + 20);
}

对于上面的包装方法,如果你只是传递 webview 引用和占位符文本,那么所需的缩进将自动应用到第二行。

一切顺利!可能对有需要的人有所帮助。

【讨论】:

    【解决方案3】:

    我觉得您需要使用多个 TextView。一个是全宽,另一个是在它的正下方,左边有一些填充或边距,以呈现缩进的外观。

    在您的代码中,您必须解析文本,以便只有一定数量的字符进入顶部 TextView,其余字符进入下方。

    不是最好的解决方案,但可能值得一试。如果你打算这样做,你肯定会想要使用单行距字体。这样一来,第一个 TextView 中的单行字符数将始终相同。

    【讨论】:

    • 转念一想,这可能在具有不同屏幕宽度的设备上效果不佳。 :\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多