android中GridLayout中的网格高度不相同,没有按比例分配

<?xml version="1.0" encoding="utf-8"?>
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.experimentthree.GridLayout">

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:rowCount="8"
    android:columnCount="4">
    <!--8行4列-->
    <Button
        android:text="button 1"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_rowSpan="2"
        android:layout_columnSpan="4"
        android:layout_gravity="fill"
        />
    <Button
        android:text="button 2"
        android:layout_row="2"
        android:layout_column="0"
        android:layout_rowSpan="2"
        android:layout_columnSpan="2"
        android:layout_gravity="fill"/>
    <Button
        android:text="button 3"
        android:layout_row="2"
        android:layout_column="2" />
    <Button
        android:text="button 4"
        android:layout_row="2"
        android:layout_column="3"/>
    <Button
        android:text="button 5"
        android:layout_row="4"
        android:layout_column="0"
        android:layout_rowSpan="1"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"/>
    <Button
        android:text="button 6"
        android:layout_row="3"
        android:layout_column="2"
        android:layout_rowSpan="2"
        android:layout_columnSpan="2"
        android:layout_gravity="fill"/>
    <Button
        android:text="button 7"
        android:layout_row="5"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"
        />
    <Button
        android:text="button 8"
        android:layout_row="5"
        android:layout_column="2"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"/>
    <Button
        android:text="button 9"
        android:layout_row="6"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"
        />
    <Button
        android:text="button 10"
        android:layout_row="6"
        android:layout_column="2"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"/>
    <Button
        android:text="button 11"
        android:layout_row="7"
        android:layout_column="0"/>
    <Button
        android:text="button 12"
        android:layout_row="7"
        android:layout_column="1"/>
    <Button
        android:text="button 13"
        android:layout_row="7"
        android:layout_column="2"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"/>
</GridLayout>

图片说明
我的效果图是这样的,但是button1没有rowspan2,button2和button6的高度明显高于rowspan2,代码应该怎么改啊,头晕了
图片说明
这是我想要的布局效果图

不是,这种布局不是用网格布局写的呀(手动汗颜!)。像这种复杂的界面,往往需要子布局组装来完成。大致说一下:首先来两个布局使用自适应各占一半,然后分别使用线性布局组装里面的子布局,横向的设置线性布局横向排布。这样来实现,不知道你明白了没?