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

android:gravity="right"

但这对我没用。

我可能做错了什么?


当前回答

我也面临同样的问题,并认为问题正在发生,因为TextView的layout_width是有wrap_content。你需要有layout_width为match_parent和android:gravity = "gravity"

其他回答

如果它是RelativeLayout,你可以使用android:layout_toRightOf="@id/<id_of_desired_item>"

Or

如果你想对齐到设备的右角的地方android:layout_alignParentRight="true"

确保你没有使用android:layout_width="wrap_content"如果是这样,那么它将无法设置重力,因为你没有足够的空间来对齐文本。而是使用android:layout_width="fill_parent"

在我的情况下,我使用相对布局的一个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 API 26+支持TextView

<TextView ...
    ... android:justificationMode="inter_word" />

缺省情况下,value为none。

Android TextView文档

关于Android TextView的问题

让我用WEB来解释重力概念,因为很多开发人员都知道它。

Android_layout_gravity行为浮动:左|右|顶部|底部

而android_gravity工作为text_align:中心|左|右

在Android中float是android_layout_gravity, text_align:是android_gravity。

android_layout_gravity相对于parent应用。如android_gravity应用于它的子内容或内部内容。

注意android_gravity只有当它的视图为match_parent时才有效(当它有空间居中时)。