Textview将每个字符放在换行符上

时间:2011-01-16 16:28:59

标签: android textview

我想将每个角色放在新线上。 我正在使用以下xml。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="12dip"
    android:layout_marginLeft="12dip"
    android:textSize="12dip" 
    android:layout_height="fill_parent" 
    android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
</LinearLayout>

但是我得到的输出如下(在某些第2行的角色即将到来)

alt text

我知道我可以使用\n,但任何人都有更好的选择。

2 个答案:

答案 0 :(得分:1)

这是一种可行的黑客攻击:

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:ems="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:typeface="monospace"
    android:gravity="center_horizontal"
    android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
    android:textColor="@android:color/white"
    />

这依赖于等宽字体,其中所有字符都具有相同的宽度。

答案 1 :(得分:0)

你在每一行上获得2个字符的原因是由于视图的静态宽度。我真的不会用静态宽度的单个视图来解决这个问题。

对此有很多解决方案,但根据您提供的信息,我可能会像您一样创建一个textview布局,并通过代码动态扩展一系列textview。 AKA字符串中的每个字符都被分配给它自己的textview。