我无法弄清楚为什么我需要做的就是让我在TableLayout中的视图完美对齐。
我的布局类似于:
<TableLayout android:id="@+id/keyboard"
android:layout_width="fill_parent"
android:layout_height="378px">
<TableRow android:layout_span="5" >
<TextView android:id="@+id/button20"
android:layout_width="63px"
android:layout_height="42px"
android:textSize="10"
android:text="L1" />
<TextView android:id="@+id/button21"
android:layout_width="63px"
android:layout_height="42px"
android:textSize="12"
android:text="L2" />
<TextView android:id="@+id/button22"
android:layout_width="63px"
android:layout_height="42px"
android:textSize="12"
android:text="L3" />
<TextView android:id="@+id/button23"
android:layout_width="63px"
android:layout_height="42px"
android:textSize="12"
android:text="L4" />
<TextView android:id="@+id/button24"
android:layout_width="63px"
android:layout_height="42px"
android:textSize="12"
android:text="L5" />
</TableRow>
</TableLayout>
现在,绘制时,第一个TextView比其他所有TextView显示2个像素低。 覆盖onLayout方法;我看到onLayout正在调用第一个View: 顶部= 2;底部= 44;而所有其他的都是top = 0; bottom = 42。
只要字体大小与其他字体略有不同,就会发生这种情况;或者如果文本换行另一行(因为它不适合宽度)。 所有TextView都具有相同的尺寸;但有些显示略低于另一些。
如果这会产生影响,则此布局位于RelativeLayout内。
我尝试了很多不同的组合,并且总会发生一些差异。 任何帮助将不胜感激。
谢谢! JY
答案 0 :(得分:3)
看起来textview的基线对齐了。因此,如果文本较小,其基线将在textview内更高。因此,文本视图的位置将更低,以匹配其他文本视图的基线与更高的文本。
要防止行中的基线对齐,请尝试将TableRow行更改为:
<TableRow android:layout_span="5" android:baselineAligned="false" >
缺点当然是文本可能看起来不再对齐。