我在textview对象中有不必要的填充。我们只关注下面图片右上角的文本视图,1.48
和6.91
。我的要求是文本绘制到其自己边界的右上角,因此它对DIJACOR
和“{1}}的”右对齐“是”最顶级的“。我尝试了+0.01
,gravity="top|right"
和includeFontPadding=false
,但无济于事。对于第二种情况,渲染结果在paddings=0
之后显示一些额外的空格,使其不与下面的6.91
对齐。任何人都可以与我分享如何解决这个问题?谢谢!
以下是我定义textView对象的方法:
-0.01
Root ViewGroup:
<TextView
android:id="@+id/priceLast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:gravity="top|right"
android:includeFontPadding="false"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:singleLine="true"
android:text="@string/price"
android:textColor="@color/dark_green"
android:textIsSelectable="false"
android:textSize="24sp"
android:textStyle="bold" />
答案 0 :(得分:3)
对于情况#2,原因是在大多数字体中,所有数字都具有相同的字符宽度(以像素为单位)。因此数字“1”和“8”采用相同数量的宽度像素。原因是你可以在彼此的顶部写数字,数字将始终对齐。这意味着像“4.1”这样的字符串将比“4.8”右边有更多的空像素。 解决方案是使用每个数字具有紧凑宽度的字体,或者使用您自己的视图将数字呈现为位图,找到最右边的非空像素,并移动位图以使其与右对齐。
答案 1 :(得分:2)
您可以看到的填充是默认的字体填充,并且由于字体大小不同,您会遇到一些不匹配。
您可以尝试多种方法来解决此问题:
1)尝试修复TextViews的高度(即DIJACOR和1.48), 例如: android:layout_height =“100dp”,这将解决您的顶部对齐问题。您可以根据需要调整高度。
2)“1”后的额外空格。如果你仔细观察到空间也在1.48之后,在“1”之后。这意味着字体在“1”之后有额外的空格。如果我们的假设是正确的,那么使用一些不同的字体将解决这个问题。尝试使用: 的机器人:fontFamily中= “无衬线”强> 要么 的机器人:fontFamily中= “无衬线光”强> 要么 的机器人:fontFamily中= “无衬线冷凝”强> 要么 的机器人:fontFamily中= “无衬线薄”强>
答案 2 :(得分:0)
我认为6.91的额外空间在字体内部,你无法帮助它。为了让它一直到父母的右上角,确保父母没有填充。
答案 3 :(得分:0)
我认为它因为1. 1比9更薄并且所有数字都包含在默认区域中。但您可以添加android:paddingRight="-1dp"
。它不健康但应该有效。
答案 4 :(得分:0)
我试图用标准字体模仿你的布局,我认为这个填充因为DIJACOR字符串和1.78之间的大小差异而弹出。也许你可以尝试将marginTop添加到DIJACOR字符串?如果DIJACOR专栏的成员与DIJACOR有关,那么添加marginTop将不会显着改变你的布局。
答案 5 :(得分:0)
我想说,删除DIJACOR
TextView和1.48
TextView的填充,并为两者添加边距Top。或者将它们添加到线性布局,您可以根据需要发布paddingTop
或marginTop
。
答案 6 :(得分:0)
您的问题是不同的字体大小。有些字符高于9,就像Î。这些字符也需要高于通常数字和字母的空间。所需空间不是字体间距,因此XML指令无济于事。 Android使用“查看高度”来对齐视图,这就是您构思的顶部边框不匹配的原因。
我面临同样的问题,没有简单的方法。你可以做的最好的事情是使用marginTop来获得带有负边距的较大文本,但是当涉及到动画时可能会出错。或者,您也可以将paddingTop添加到其他文本视图中。