在Android TextView中alignment文本

我的应用程序中有一个TextView 。 我想把它的文字alignment到右边。 我试着添加:

 android:gravity="right" 

但是这对我不起作用。

我可能会做错什么?

我认为你是这样做的: android:layout_width = "wrap_content"
如果是这种情况,请执行以下操作: android:layout_width = "match_parent"

一般来说, android:gravity="right"android:layout_gravity="right"

第一个影响文本本身在视图中的位置,所以如果你希望它是右alignment的,那么layout_width=应该是"fill_parent"或者"match_parent"

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

更好的解决scheme是最简单的解决scheme,在代码行为中进行更less的修改

如果只能在TextView 2个属性上解决这个问题呢?

而不是需要改变你的LinearLayout属性,可能会改变LinearLayout孩子的行为?

使用这种方法,您不需要更改LinearLayout属性和行为,只需要将以下两个属性添加到目标TextView

 android:gravity="right" android:textAlignment="gravity" 

改变你的目标来解决你的解决scheme,而不是在未来有机会引发另一个问题,修改你的目标父亲会更好吗? 想想:)

android:layout_gravity是用来alignment文本视图相对于父布局。 android:gravity用于alignment文本视图内的文本。

你确定你正在尝试将文本视图中的文本alignment到右侧,还是想要将文本视图本身移动到与父布局相对的右侧,还是要同时实现

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

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

 android:gravity="right" 

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

 android:layout_width = "match_parent" 

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

 android:layout_alignParentRight="true" 

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

android_layout_gravity行为是float:left|right|top|bottom

android_gravity工作方式是text_align:centre|left|right

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

和android_layout_gravity适用于相对于父。 其中android_gravity适用于其子内容。

注意 android_gravity只有当它的视图是match_parent(当它有中心的空间)时才起作用。

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

要么

如果你想alignment设备的右上angularandroid:layout_alignParentRight="true"

下面为我​​工作:

 <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_alignParentEndandroid:textAlignment设置。

以下代码片段:

 android:textAlignment="textEnd" android:layout_gravity="end" 

对我很好

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

您可以使用:

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

这应该是有目的的

android:textAlignment="textStart"

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

使中心在水平和垂直方向排列第一。

如果有人仍然需要

 android:gravity="end" 

尝试在TextView添加android:gravity="center"