0

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

从下图中可以看出,前三个正方形是全高的,而其余的在它们下面有一条线。

在此处输入图像描述

这是代码的一小部分,所有行完全相同,因此无需粘贴所有 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 -->
4

1 回答 1

0

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

您也可以尽可能简化,例如,您可能不需要将ImageViewsinside包装起来RelativeLayouts

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

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY"
    android:src="@drawable/tile"
    android:adjustViewBounds="true" />

无需设置填充/边距,因为它们默认为 0,请记住,fill_parent从 API 级别 8 开始不推荐使用。

于 2013-09-10T22:40:47.807 回答