Android Tablerow不需要的行空间

时间:2013-09-10 21:09:39

标签: android android-layout

我有一个由RelativeLayout组成的Layout,TableLayout包含15行。基本上这应该是一个棋盘游戏。 每行有15个RelativeLayout,每个行都有一个ImageView。 三个第一个ImageViews均匀匹配,但从第四个ImageViews得到一个更小的高度,在行之间留下一个小的白色边框/线。 我不知道如何解决这个问题,任何人都可以帮忙吗?

从下图中可以看出,三个第一个正方形处于全高,而其余正方形下方有一条线。

enter image description here

这是代码的一小部分,所有行都完全相同所以不需要粘贴全部15:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TableLayout 
    android:id="@+id/board"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="0dip"
    android:layout_margin="0dip"
    android:fitsSystemWindows="true">
    <!-- 15 rows like this -->
    <TableRow
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_margin="0dip"
    android:padding="0dip">
    <!-- 15 relativeLayouts per Row -->
    <RelativeLayout
    android:id="@+id/boardTile_15_1"
    android:layout_weight="1">
    <!-- One ImageView per RelativeLayout -->
    <ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="0dip"
    android:padding="0dip"
    android:src="@drawable/tile"
    android:adjustViewBounds="true">
    </ImageView>
    </RelativeLayout>
    <!-- End one RelativeLayout -->
    </TableRow>
    <!-- End one tableRow -->

1 个答案:

答案 0 :(得分:0)

很难说没有测试,但是“调试”这样的复杂视图的有用技巧是为相关的子视图添加背景颜色(即包含RelativeLayouts的{​​{1}}),只是为了检查谁包含填充。

您也可以尽可能地简化,例如,您可能不需要将ImageViews包裹在ImageViews内。

那就是说,我的猜测RelativeLayouts需要设置ImageViews属性,它们看起来像.-

scaleType

没有必要设置填充/边距,因为默认情况下它们是0,并且请记住,从API级别8不推荐使用<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/tile" android:adjustViewBounds="true" />