右键对齐android TextView中的文本

时间:2012-01-23 09:00:03

标签: android alignment textview

我的申请表中有TextView。我想将其中的文本对齐到右边。我尝试添加:

android:gravity="right"

但这对我不起作用。

我可能做错了什么?

18 个答案:

答案 0 :(得分:181)

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

答案 1 :(得分:145)

通常,android:gravity="right"android:layout_gravity="right"不同。

第一个影响文本本身在视图中的位置,因此如果您希望它在右对齐,则layout_width=应为"fill_parent""match_parent"

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

答案 2 :(得分:76)

更好的解决方案是最简单的解决方案,以及在代码行为中进行较少修改的解决方案

如果您只能使用TextView上的2个属性解决此问题该怎么办?

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

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

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

最好只改变你的目标来解决你的解决方案而不是有机会在将来引起另一个问题,修改你的目标父亲?想一想:)

答案 3 :(得分:20)

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

您确定要尝试将文本视图中的文本对齐到右侧,还是要将文本视图本身相对于父布局向右移动,或者您是否尝试实现两者

答案 4 :(得分:10)

以下代码段:

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

对我很有用

答案 5 :(得分:8)

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

答案 6 :(得分:7)

如果有人还需要

android:gravity="end"

答案 7 :(得分:7)

android:gravity="right"

它主要用于线性布局,因此您必须将TextView的宽度或EditText设置为

android:layout_width = "match_parent"

使用相对布局时,请使用

android:layout_alignParentRight="true"

答案 8 :(得分:5)

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

如果您想与设备的right角对齐android:layout_alignParentRight="true"

答案 9 :(得分:5)

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

答案 10 :(得分:4)

  

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

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

android_gravity作为text_align:centre|left|right

工作

在Android中浮动是android_layout_gravity和text_align:是android_gravity。

并且android_layout_gravity适用于父级。 android_gravity适用于其子内容或内容的位置。

注意 android_gravity仅在其View为match_parent时(当它具有居中空间时)才有效。

答案 11 :(得分:3)

以下对我有用:

<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设置。

答案 12 :(得分:2)

您可以使用:

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

答案 13 :(得分:2)

这应该达到目的

android:textAlignment="textStart"

答案 14 :(得分:1)

我也遇到了同样的问题,并且发现问题正在发生,因为TextView的layout_width有wrap_content。你需要将layout_width作为match_parent和android:gravity =&#34; gravity&#34;

答案 15 :(得分: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>

使第一个在水平和垂直的中心对齐。

答案 16 :(得分:0)

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

答案 17 :(得分:0)

在我的案例中,我使用了属性“ layout_alignRight”,其文本为:

android:layout_alignRight="@+id/myComponentId"

如果要添加一些右边距,只需将属性“ Layout_Margin Right”设置为“ 20dp”,其文本为:

android:layout_marginRight="20dp"