我有一个TextView在我的应用程序。我想让文本向右对齐。我试着补充道:

android:gravity="right"

但这对我没用。

我可能做错了什么?


当前回答

在我的情况下,我使用相对布局的一个emptyString

在纠结了一个小时之后。只有这个对我有用:

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

layout_toRightOf或layout_toEndOf都可以,但为了更好地支持它,我同时使用了它们。

更清楚地说:

这就是我想做的:

这是模拟器的输出

布局:

<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" />

注意:

android: layout_width = " wrap_content "的作品 不使用重力

其他回答

一般来说,android:gravity="right"和android:layout_gravity="right"是不同的。

第一个参数会影响文本本身在视图中的位置,所以如果你想让它右对齐,那么layout_width=应该是"fill_parent"或"match_parent"。

第二个影响视图在其父视图中的位置,换句话说——在父视图中对齐对象本身(编辑框或文本视图)。

以下是我的工作:

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sarah" />

<TextView
    android:id="@+id/tv_distance"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/tv_username"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@+id/tv_username"
    android:text="San Marco"
    android:textAlignment="viewEnd" />

请注意第二个TextView的android:layout_alignParentEnd和android:textAlignment设置。

试着使用:-

android:justificationMode="inter_word"

这将证明你的短信是正确的。

android:gravity="right"

它基本上用于线性布局,所以你必须设置你的宽度的TextView或编辑文本为

android:layout_width = "match_parent"

and

当你在相对布局中工作时,使用

android:layout_alignParentRight="true"

layout_gravity用于将文本视图与父布局对齐。 Android:gravity用于在文本视图中对齐文本。

你确定你是在试图将文本视图中的文本向右对齐还是你想要将文本视图本身相对于父布局向右移动,还是你想同时实现这两种目的