TextView间距与新行字符不一致

时间:2013-03-25 17:52:57

标签: android textview spacing

我希望“Hello World”之间的间距等于“Stack Overflow”之间的间距,同时保持“World”和“Stack”之间的间距。 “Hello World”包含在一个TextView内,换行符为“Hello \ n World”。 “堆栈溢出”分为两个TextView元素。我知道我可以在lineSpacingExtra的布局中使用myTextView,但这也会在“世界”下面添加不需要的间距。

是否有优雅的方法来实现相等的间距?一个想法是在两个TextView元素之间拆分“Hello World”,并在看到新行字符时使用正则表达式进行拆分,但这有点像黑客。

布局:     

<?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:id="@+id/textview_wraptext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Stack"
            />
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Overflow"
            />
</LinearLayout>

Java代码:     

package com.example.TextViewSpacingExample;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class TextViewSpacing extends Activity {

    private TextView myTextView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myTextView = (TextView) findViewById(R.id.textview_wraptext);
        myTextView.setText("Hello \nWorld");
    }
}

Screenshot

1 个答案:

答案 0 :(得分:0)

我最终使用TextView将两个“Stack”和“Overflow”TextView重新设计为一个SpannableString,因为它是最不具备问题的解决方案。