1) Добавьте android:orientation="vertical"
в LinearLayout.
2) Используйте android:layout_height="fill_parent"
для ОБА Сетка n Макет таблицы И также добавьте android:layout_weight="0.5"
в GridLayout и TableLayot. Это поровну разделит оба макета на экране.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:stretchColumns="1" android:orientation="vertical">
<GridView android:id="@+id/gridview" android:layout_width="fill_parent"
android:numColumns="4" android:verticalSpacing="10dp"
android:horizontalSpacing="10dp" android:stretchMode="columnWidth"
android:gravity="center" **android:layout_height="fill_parent"**
**android:layout_weight="0.5"** />
<TableLayout android:layout_width="fill_parent"
**android:layout_height="fill_parent"** android:stretchColumns="1"
**android:layout_weight="0.5"**>
Остальная часть остается такой же ...
Вы можете попробовать различные комбинации layout_weight, такие как 0,4 и 0,6 или 0,8 и 0,2 и т. Д., Если вы не хотите, чтобы макеты равномерно разделяли экран. Но если вы используете layout_height для некоторого фиксированного значения пикселя или падения, оно будет выглядеть по-разному на экранах разных устройств ... Поэтому я рекомендую использовать параметр layout_weight.