TextView 文本居中对齐

TextView text alignment to center

我想将 TextView 内的文本居中对齐。我使用了 android:gravity="center" 但它在单词之间留下了额外的间距。

<LinearLayout
        android:id="@+id/textContainer"
        android:orientation="vertical"
        android:layout_weight="4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="16dp"
            android:textSize="24sp"
            android:textStyle="bold"
            android:textColor="@color/colorTextDarkGrey"
            android:gravity="center"
            android:text="INTRO TITLE"/>

        <TextView
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="14sp"
            android:textStyle="normal"
            android:textColor="@color/colorTextLightGrey"
            android:gravity="center"
            android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
            labore et dolore magna aliqua."/>

    </LinearLayout>

预期结果:

您看到单词之间有空格的原因是您在文本中使用了额外的行,它在 incididunt utlabore et 之间引入了空格。

只需替换这个(两行):

android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
            labore et dolore magna aliqua."

有了这个(一行):

android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."

希望对您有所帮助!

如果必须修复 TextView 的文本,则只需消除任何新的换行符,否则如果您想以编程方式执行此操作,您只需确保不会传递带换行符的字符串即可:

TextView text = findViewById(R.id.text);
String sampleString = "Line 1\nLine 2";
text.setText(sampleString.replace("\n", " "));