我想构建通用的5X5视图,这些视图会在表格布局上进行(所有视图都具有相同的宽度和高度) 正如你所看到的,我的代码不是通用的。该怎么办?我试着玩填充父母和匹配父母...请帮助。 我希望tableLaayout的宽度和高度相等。
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
tools:context=".MainActivity" >
<TableLayout
android:id="@+id/tableBoard"
android:layout_width="wrap_content"
android:layout_height="313dp"
android:layout_centerHorizontal="true" >
<TableRow
android:id="@+id/tableRow1"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<com.example.com.worfield.barak.Square
android:id="@+id/view1"
android:layout_width="60dp"
android:layout_height=""
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view2"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view3"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view4"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view5"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
</TableRow>
<TableRow
android:layout_weight="1"
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<com.example.com.worfield.barak.Square
android:id="@+id/view6"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:layout_weight="0.24"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view7"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view8"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view9"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view10"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
</TableRow>
<TableRow
android:layout_weight="1"
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<com.example.com.worfield.barak.Square
android:id="@+id/view11"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view12"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view13"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view14"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view15"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
</TableRow>
<TableRow
android:layout_weight="1"
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<com.example.com.worfield.barak.Square
android:id="@+id/view16"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view17"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view18"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view19"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view20"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
</TableRow>
<TableRow
android:layout_weight="1"
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<com.example.com.worfield.barak.Square
android:id="@+id/view21"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view22"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view23"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view24"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
<com.example.com.worfield.barak.Square
android:id="@+id/view25"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="1dp"
android:background="@drawable/square" />
</TableRow>
</TableLayout>
<Button
android:id="@+id/bStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tableBoard"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Do Something" />
<TextView
android:id="@+id/tvError"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bStart"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:text="TextView" />
答案 0 :(得分:2)
创建一个只能是方形的特殊视图。您应该相应地覆盖onMeasure方法。例如,您可以执行以下操作:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//final int height = getMeasuredHeight();
final int width = getMeasuredWidth();
setMeasuredDimension(width, width);
}
TableRow是LinearLayout。因此,您可以使用layout_weight在水平方向上平均传播5个子项。为行的所有子项设置layout_width =“0”和layout_weight =“1”。测量时,每个孩子的宽度将是tableRow宽度的1/5,孩子的高度将等于它的宽度。
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tableBoard"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
<TableRow
android:id="@+id/tableRow5"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<com.kamagames.pokerist.Squire
android:id="@+id/view25"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="#00ff00" />
<com.kamagames.pokerist.Squire
android:id="@+id/view25"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="#ff0000" />
<com.kamagames.pokerist.Squire
android:id="@+id/view25"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="#0000ff" />
<com.kamagames.pokerist.Squire
android:id="@+id/view25"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="#ffff00" />
<com.kamagames.pokerist.Squire
android:id="@+id/view25"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="#00ffff" />
</TableRow>
</TableLayout>
</RelativeLayout>