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

android:gravity="right"

但这对我没用。

我可能做错了什么?


当前回答

试着使用:-

android:justificationMode="inter_word"

这将证明你的短信是正确的。

其他回答

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

第一个参数会影响文本本身在视图中的位置,所以如果你想让它右对齐,那么layout_width=应该是"fill_parent"或"match_parent"。

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

android:gravity="right"

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

android:layout_width = "match_parent"

and

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

android:layout_alignParentRight="true"

更好的解决方案是最简单的解决方案,并且对代码行为的修改较少。

如果你能解决这个问题只有2个属性在你的TextView?

而不是需要改变你的线性布局属性,也许可以改变行为的线性布局子?

使用这种方式,你不需要改变线性布局的属性和行为,你只需要添加以下两个属性到你的目标TextView:

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

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

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

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

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