我的行(水平LinearLayout
)在结尾显示时间TextView
。这是它的外观:
现在我需要所有行中的后缀(am / pm)垂直对齐。在上面的布局中情况并非如此,正如您所看到的,最后一行未对齐,因为显示的时间更长。
我使用制表符\ u0009实现了这一点。这意味着我将文本设置为例如“7:21 \ u0009 \ u0009pm”。这产生了所需的结果,如下所示:
但是,我需要知道(1)这是最有效的方式和(2)这适用于所有Android设备。如果有其他方法可以实现这一目标,请告诉我。
这是一行的XML布局供您参考:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/prayer_time_row_height"
android:layout_marginLeft="48dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.devspark.robototextview.widget.RobotoTextView
style="@style/text_subhead"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Today"
android:textColor="@color/material_light_secondary_text"
android:visibility="invisible" />
<com.devspark.robototextview.widget.RobotoTextView
style="@style/text_subhead"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Event"
android:textColor="@color/material_light_primary_text" />
<com.devspark.robototextview.widget.RobotoTextView
style="@style/text_subhead"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="12:06\u0009\u0009am"
android:textColor="@color/material_light_primary_text" />
</LinearLayout>
奖金
用于指出垂直对齐小时分钟分隔符(即冒号字符)的方法的加值点。
答案 0 :(得分:2)
也许使用标签 效率最高,但差距非常大,无法配置。如果您需要单个视图组中的所有这些行,您可以尝试检查RelativeLayout:在常用左侧垂直对齐上午/下午,并在左侧和基线上放置小时。这是最灵活的方式,因为您可以控制相对位置和边距,但在计算方面效率较低,因为在布置元素时需要额外的计算。
根据对齐冒号 - 在大多数字体(不仅仅是等宽字体)中,数字被设计为占用相等的空间,因此只需对齐右边的数字(例如在相对布局中),它应该这样做。
答案 1 :(得分:2)
对于冒号角色,您可以尝试使用角色&#34; \ uee01&#34;而不是&#34;:&#34;。谷歌就是锁定屏幕上的时钟。
答案 2 :(得分:1)
您可以使用2列TableLayout。第一列是没有AM / PM的时间,第二列是AM / PM。将第一列的重力设置为“结束”或“右”,如果使用固定宽度的字体,则时间将排在冒号处。