Answers:
更好的解决方案是最简单的解决方案,并且是对代码行为进行较少修改的解决方案。
如果仅在您的2个属性上可以解决此问题TextView
怎么办?
无需更改LinearLayout
可能会改变LinearLayout
孩子行为的“属性” ?
使用这种方法,您无需更改LinearLayout
属性和行为,只需将以下两个属性添加到目标中TextView
:
android:gravity="right"
android:textAlignment="gravity"
最好只更改目标以解决您的解决方案,而不是将来有机会引起另一个问题来修改目标父亲,这会更好吗?考虑一下:)
TextView
属性吗?-您可以检查从参考这里的物业developer.android.com/reference/android/view/...
android:layout_gravity
用于使文本视图相对于父版式对齐。
android:gravity
用于在文本视图内对齐文本。
您确定要在文本视图中将文本视图向右对齐,还是要相对于父版式将文本视图本身向右移,还是要同时实现这两者?
android:layout_width="wrap_content"
如果不使用,请确保不使用它,否则它将无法设置重力,因为您没有足够的空间来对齐文本。改为使用android:layout_width="fill_parent"
android:gravity="right"
它基本上是在线性布局中使用的,因此您必须设置TextView的宽度或将EditText设置为
android:layout_width = "match_parent"
和
在“相对布局”中使用时,请使用
android:layout_alignParentRight="true"
制作(LinearLayout)android:layout_width="match_parent"
和TextView的android:layout_gravity="right"
让我用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相对于parent适用。android_gravity适用于其子内容或内部内容。
注意 android_gravity仅在其View为match_parent时才有效(当它有居中的空间时)。
下面为我工作:
<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
设置。
就我而言,我是用Relative Layout
了emptyString
经过一个小时的努力。只有这对我有用:
android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"
layout_toRightOf
或layout_toEndOf
两者均有效,但为了更好地支持它,我同时使用了两者。
为了更清楚一点:
这就是我想要做的:
这是模拟器的输出
布局:
<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"
作品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>
使数字在水平和垂直中心对齐。