添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在android的TextView中右对齐文本

245 人关注

我的应用程序中有一个 TextView 。我想将其中的文本向右对齐。我试着添加。

android:gravity="right"

But this doesn't work for me.

我可能做错了什么?

android
alignment
textview
Bishan
Bishan
发布于 2012-01-23
21 个回答
a fair player
a fair player
发布于 2022-10-15
已采纳
0 人赞同

我认为你正在这样做。 android:layout_width = "wrap_content"
如果是这种情况,请这样做。【替换代码1

@Bishan fill将填充剩余的空间,match将设置它等于父体的宽度。
实际上,fill_parent和match_parent是同一回事。这个名字被改成了match_parent,因为显然fill_parent使人们感到困惑。
这个答案并不符合逻辑...
wiztrail
wiztrail
发布于 2022-10-15
0 人赞同

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

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

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

Paulo Roberto Rosa
Paulo Roberto Rosa
发布于 2022-10-15
0 人赞同

更好的解决方案是最简单的方案,也是对你的代码行为做较少修改的方案。 .

如果你只用你的 TextView 上的2个属性就能解决这个问题呢?

而不是需要改变你的 LinearLayout 。替换代码1】的属性,也许能改变 LinearLayout 的行为?

使用这种方式,你不需要改变 LinearLayout 的属性和行为,你只需要给你的目标 TextView 添加以下两个属性。

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

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

anu
我得到一个错误,说在软件包android中的资源'textAlignment'没有找到资源标识符。
你确定你正在获取一个 TextView 的属性?- 你可以从这里的参考资料中检查该属性。 developer.android.com/reference/android/view/...
textAlignment是在API级别17(Android 4.2)中添加的。你的模拟器/设备需要运行4.2以上才能工作。
我试图在Android 4.1.2中使用这个textAlignment属性,得到的错误是 "没有找到属性'textAlignment'的资源标识符"。我在这里找到了这个错误的答案 stackoverflow.com/a/20176191/723507 . How could you use it in 4.0.3?
rogerstone
rogerstone
发布于 2022-10-15
0 人赞同

替换代码0】用于将文本视图与父布局对齐。 替换代码1】用于对齐文本视图中的文本。

你确定你是想将文本视图中的文本向右对齐,还是想将文本视图本身相对于父布局向右移动,或者你想同时达到这两个目的。

我试图将文本视图中的文本向右对齐。
npk
npk
发布于 2022-10-15
0 人赞同

如果有人仍然需要

android:gravity="end"
    
那是做什么用的?
npk
在LTR中,这将使文本向右对齐,在RTL中,向左对齐。
Fey Agape
Fey Agape
发布于 2022-10-15
0 人赞同

The following code snippet:

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

对我来说非常有效

Lalit Poptani
Lalit Poptani
发布于 2022-10-15
0 人赞同

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

Kushal Ramola
Kushal Ramola
发布于 2022-10-15
0 人赞同
android:gravity="right"

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

android:layout_width = "match_parent"

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

android:layout_alignParentRight="true"
    
Augustus Francis
Augustus Francis
发布于 2022-10-15
0 人赞同

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

chubao
chubao
发布于 2022-10-15
0 人赞同

Below works for me:

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

user2342517
user2342517
发布于 2022-10-15
0 人赞同

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

如果你想对准设备的 right 角的地方 android:layout_alignParentRight="true"

Zar E Ahmer
Zar E Ahmer
发布于 2022-10-15
0 人赞同

让我用以下方法解释重力概念 WEB 因为很多开发商都意识到了这一点。

android_layout_gravity behaves float:left|right|top|bottom

Whereas android_gravity work as text_align:centre|left|right

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

而android_layout_gravity适用于相对于父级的内容,而android_gravity适用于其子级或内部内容。

Note android_gravity只有在它的View是match_parent(当它有空间到中心)时才起作用。

Pablo
Pablo
发布于 2022-10-15
0 人赞同

你可以使用。

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    
masoud Cheragee
masoud Cheragee
发布于 2022-10-15
0 人赞同

this should serve the purpose

android:textAlignment="textStart"

Rohit Sharma
Rohit Sharma
发布于 2022-10-15
0 人赞同

在我的案例中,我是用 Relative Layout 来代替 emptyString

在这上面挣扎了一个小时后。只有这个对我有效。

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

layout_toRightOf or layout_toEndOf both works, but to support it better, I used both.

为了更清楚地说明问题。

这就是我所要做的。

而这是模拟器的输出

<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" works
  • Gravity is not used
  • Arup Saha
    Arup Saha
    发布于 2022-10-15
    0 人赞同

    我也遇到了同样的问题,我想问题的发生是由于TextView的layout_width有wrap_content。你需要将layout_width作为match_parent,android:gravity = "gravity"

    Alp Altunel
    Alp Altunel
    发布于 2022-10-15
    0 人赞同
    <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>
    

    使一号在水平和垂直方向上都居中对齐。

    TheGreenGoblen
    TheGreenGoblen
    发布于 2022-10-15
    0 人赞同

    try to add android:gravity="center" into TextView

    Laurent
    Laurent
    发布于 2022-10-15
    0 人赞同

    在我的案例中,我使用了 "layout_alignRight "属性,在文本中是:

    android:layout_alignRight="@+id/myComponentId"
    

    如果你想添加一些右边距,只需将 "Layout_Margin Right "属性设置为 "20dp",例如,在文本中,它的:

    android:layout_marginRight="20dp"
        
    YanYan
    YanYan
    发布于 2022-10-15
    0 人赞同

    从Android API 26+开始,TextView已经支持对齐方式。

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

    默认情况下,值为无。

    Android TextView文件

    关于Android TextView的Justify Text问题