在安卓TextView中右对齐文本

250

我在我的应用程序中有一个TextView。我想要将其中的文本向右对齐。我尝试添加以下内容:

android:gravity="right"

但这对我不起作用。

我可能做错什么了?

21个回答

5
使 (LinearLayout) 的 android:layout_width="match_parent" 和 TextView 的 android:layout_gravity="right"

4
让我用WEB来解释重力概念,因为很多开发人员都知道它。
android_layout_gravity的行为类似于float:left|right|top|bottom
而android_gravity的作用类似于text_align:center|left|right
在Android中,float是android_layout_gravity,text_align是android_gravity。
而android_layout_gravity相对于其父元素应用,而android_gravity则适用于其子元素或内部内容。
请注意,只有当View是match_parent时(即有空间居中),android_gravity才起作用。

2

在我的情况下,我正在使用相对布局来处理一个空字符串

在这个问题上我苦苦挣扎了一个小时。只有以下方法适用于我:

android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"

layout_toRightOflayout_toEndOf都可以使用,但为了更好地支持它,我两者都使用了。

为了更清晰明了:

这就是我想做的:

enter image description here

这是模拟器的输出

enter image description here

布局:

<TextView
    android:id="@+id/welcome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="Welcome "
    android:textSize="16sp" />
<TextView
    android:id="@+id/username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@id/welcome"
    android:layout_toRightOf="@id/welcome"
    android:text="@string/emptyString"
    android:textSize="16sp" />

请注意:

  1. android:layout_width="wrap_content" 是有效的
  2. Gravity 没有被使用

2
您可以使用:

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"

2

希望这能达到目的。

android:textAlignment="textStart"

意思是将文本左对齐。

1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">

  <TextView
    android:id="@+id/tct_postpone_hour"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_gravity="center"
    android:gravity="center_vertical|center_horizontal"
    android:text="1"
    android:textSize="24dp" />
</RelativeLayout>

使数字1水平垂直居中对齐。

1

我也遇到了同样的问题,并发现问题是由于TextView的layout_width设置为wrap_content导致的。你需要将layout_width设置为match_parent,同时设置android:gravity = "gravity"。


0
尝试将 android:gravity="center" 添加到 TextView 中。

0

0

尝试使用以下方法:

android:justificationMode="inter_word"

这将使您的文本对齐。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接