android - 带换行符的TextViews

时间:2012-10-05 12:44:02

标签: android textview android-linearlayout

我有TextViews,我希望它们在行中与换行符一样。 TextViews是具有某些功能的对象。他们是由昏迷分隔的阵列中的单词。我希望用换行符显示它。

这是我的代码:

int i;
String p = "one, two, three, four, five, six, seven, eight, ten";
String[] array = p.split(",");

LinearLayout groupLL = new LinearLayout(this);
LinearLayout.LayoutParams gLLP = new LinearLayout.LayoutParams(
    new ViewGroup.MarginLayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT));

LinearLayout.LayoutParams mlp = new LinearLayout.LayoutParams(
    new ViewGroup.MarginLayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.WRAP_CONTENT));
mlp.setMargins(0, 0, 10, 0);

for (i = 0; i < array.length; i++) {
    TextView newTextView = new TextView(this);
    newTextView.setText(array[i]);
    newTextView.setBackgroundColor(Color.RED);
    newTextView.setSingleLine(true);
    newTextView.setTextSize(20);

    groupLL.addView(newTextView, mlp);
}

ll.addView(groupLL, gLLP);

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView02"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    <RelativeLayout
    android:id="@+id/RelativeLayout02"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout android:id="@+id/LinearLayout2"
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >
    </LinearLayout>

    </RelativeLayout>

</ScrollView>

我有这个:

|one two three four five s|
|                         |
|                         |

我想要这个:

|one two three four five  |
|six seven eight ten      |
|                         |

修改

如果我改变了 newTextView.setSingleLine(真); 至 newTextView.setSingleLine(假); 那我有这个:

|one two three four five six |
|                         sev|
|                          en|

4 个答案:

答案 0 :(得分:1)

更改

newTextView.setSingleLine(true);

 newTextView.setSingleLine(false);
希望这对我的朋友有用......

答案 1 :(得分:1)

尝试为textviews设置setEllipsize

newTextView.setEllipsize(null);

答案 2 :(得分:0)

当您在此newTextView.setSingleLine(true);中设置为true时,如果您希望文本在下一行中换行,则需要将其设置为false

只需newTextView.setSingleLine(false);更改for for循环

根据您的代码,您每次都在新的TextView中添加数组对象的单个元素,并且不需要为此设置此方法,您需要更改此布局。如果您要在单个textview中附加或p字符串设置,您可以根据需要使用多个textview,您需要更改布局。

单个textview

TextView newTextView = new TextView(this);
newTextView.setText(p);
newTextView.setBackgroundColor(Color.RED);
newTextView.setTextSize(20);

groupLL.addView(newTextView, mlp);

答案 3 :(得分:0)

将以下设置为false而不是true以启用换行newTextView.setSingleLine(true);