在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_alignParentEnd
和android: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"