我试图用方形视图制作一张NxM表(在我的情况下是2x5)。
一切正常,但边距为非零和/或填充并非所有视图都具有相同的尺寸,在某些单元格的行之间显示一些背景。
这里是xml和java代码。
我甚至在没有TableLayout的情况下尝试使用一个带有一个LinearLayout的行,使用FrameLayout,但它是相同的。尝试使用不同的模拟器,我得到不同数量的具有相同尺寸的单元格。
所以问题是在同一行中放置相同平方尺寸的许多视图(带背景。尝试没有bg图像,只用彩色bg,同样的问题)。
非常感谢!
布局:
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq"
>
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
<com.myName.myProject.NodeContainer
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:background="@drawable/tile_sq" >
</com.myName.myProject.NodeContainer>
</TableRow>
</TableLayout>
类别:
package com.myName.myProject;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
public class NodeContainer extends LinearLayout {
public NodeContainer(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NodeContainer(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final int width = getMeasuredWidth();
setMeasuredDimension(width, width);
}
}