文本在TextView字段中的换行符后居中

时间:2013-05-12 09:49:56

标签: android xml

我一直在做这个功课,但我遇到的所有建议似乎都没有起作用。我是Android应用程序的新手,虽然答案对某些人来说可能很简单,但我无法看到我出错的地方....

我有一个TextView字段,其中包含带换行符的字符串值(\ n)。在图形输出上,文本的下一行不以TextView容器为中心。我的代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView5"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="15dp"
        android:text="@string/maxText"
        android:textAlignment="gravity"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />

</RelativeLayout>

我的字符串如下:

<string name="maxText">My text part 1:\nMy text part 2</string>

输出文本的下面一行与容器对齐,但我需要它在中心。我已经尝试了我在论坛中遇到的所有建议等等 - 但无济于事。

任何帮助都会受到赞赏。

4 个答案:

答案 0 :(得分:1)

实际上,我们并不需要将该文本放入两个文本视图中。

在XML文件中为包含textview的布局设置android:layout_gravity="center"

如果这不起作用。

尝试设置布局参数的重心,并以编程方式将此参数设置为布局。如下所示。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
yourLayout.setLayoutParams(params);
yourLayout.setGravity(Gravity.CENTER);

这对我有用。

希望这也适合你。 :)

答案 1 :(得分:0)

解决此问题的唯一合理方法是创建两个文本视图,第二个文本视图紧接在第一个文本视图下方,并设置为android:layout_gravity="center"android:gravity="center"

答案 2 :(得分:0)

你可以在你的课程中尝试这个代码,我将它用于按钮,它运行良好,两条线都居中。我想它应该对TextView

起作用
String styledText = "My text part 1" + "<br />" + "My text part 2";         
textView.setText(Html.fromHtml(styledText));

注意:所以你必须分别声明2个字符串并从资源中获取它们

答案 3 :(得分:0)

xml中最好的方法是添加属性

android:gravity="center_horizontal"