I'm having a hard time to design a GridView layout with header and footer like this:

What I did is, create a ListView with just one item which is the GridView and add the header/footer using addHeaderView() and addFooterView(). The problem is that the GridView doesn't show the whole items. I've disabled the GridView scrolling using:
gridview.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE){
return true;
}
return false;
}
});
Is there a way to show the make the GridView show all items? I've tried setting the height of the GridView to wrap_content but it doesn't work. Here is the layout for the GridView :
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="2"
android:background="@color/main_gray"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center">
</GridView>
I know it is not right to put gridview inside a listview but the client requested for this kind of layout..