【问题标题】:Android Vertical Text view - display character one below another as show belowAndroid 垂直文本视图 - 显示一个下一个字符,如下所示
【发布时间】:2019-08-02 10:40:32
【问题描述】:

我想在垂直文本视图中显示文本(即字符应该如下所示放置在另一个下方)
一个
b
c
d

我希望在单个文本视图中执行此操作。 我们可以使用 android:toDegrees="-90" 或 "90" 来翻转整个文本,但我想显示如上所示,这不是使用 android:toDegress 标签实现的。

感谢您的帮助!

更新 我将通过 AIDL 从另一个应用程序获取字符串,该字符串会根据发件人进行更改,此外,他将向我发送一个标志以在垂直或水平方向显示文本。根据标志,我应该相应地显示。我对水平视图没有问题,因为它是默认视图,但要以垂直方式显示(如上所示)我需要帮助。

【问题讨论】:

  • 垂直是什么意思?什么是分隔符?空间?
  • 垂直表示字符应该在另一个下方而不是相邻显示。我在 TextView 中寻找一个选项,该选项将具有一个内置选项,可以将给定的字符串 'abcd' 更改为我的问题中所示的方式。我真的没有想到任何分隔符来获得这个视图,但是在看到下面两个答案后,我觉得我们可以通过插入 '\n' 新行来实现这种显示。
  • 是的,TextView 默认不支持这个
  • 好的,谢谢@Bach Vu 及时的回答。

标签: android textview vertical-alignment


【解决方案1】:

您可以使用\n 或<br> 在字符串中添加换行符

与\n:

<string name="sample_string">a\nb\nc\nd</string>
textView.setText(R.string.sample_string)

与&lt;br&gt;:

<string name="sample_string"><![CDATA[a<br />b<br />c<br />d]]></string>
textView.setText(Html.fromHtml(context.getString(R.string.sample_string))

【讨论】:

  • 感谢您的回答,它可以帮助我按预期显示,但我想知道是否有任何带有“TextView”的内置选项可以做到这一点。我的字符串是一个动态的,我从不同的方法得到,所以我需要修改字符串以适应你的方法。
  • 您能详细解释一下您的要求吗?
【解决方案2】:

如果字符串是动态的,那么您可以在每个字符后添加\n。

private String build(String str){
    if(!TextUtils.isEmpty(str)) {
        StringBuilder builder = new StringBuilder();
        builder.append(str.charAt(0));
        for (int i = 1; i < str.length(); i++) {
                builder.append("\n"+str.charAt(i));
        }
        return builder.toString();
    }
    return "";
}


 textView.setText(build("abcd"));

它将垂直显示。这样文本可以超出 Bound 所以在这种情况下您应该使 TextView 可滚动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2015-06-04
    • 1970-01-01
    相关资源
    最近更新 更多