android:id="@+id/child_root"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="7"
android:background="@color/LIGHT_GRAY"
android:orientation="vertical"
android:paddingLeft="5dp" >
<LinearLayout
android:id="@+id/LinearLayout_child"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical" >
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:scrollbars="none" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:orientation="horizontal" >
<GridView
android:id="@+id/lv_category_two"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center_vertical"
android:scrollbars="none" >
</GridView>
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
<LinearLayout
android:layout_below="@+id/LinearLayout_child"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/LIGHT_GRAY"
android:baselineAligned="true" >
<GridView
android:id="@+id/gv_common_product"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="5dp"
android:scrollbars="none"
android:verticalSpacing="5dp" >
</GridView>
</LinearLayout>
</LinearLayout>
以上布局是显示头一个横向的滑动列表,下面显示数据的GridView,看上去一点问题都没有,但是当我们运行出来就会发现,这样的布局下面的GridView高度是自适应的,即内容有多少就显示多高,这样会造成数据量小的时候屏幕下方出现大量的留白,而且有时候会出现数据高度计算出错的问题,这样的布局经常是以上一次获得的数据的高度作为下一次数据显示的高度,这就是问题所在了,当第一次数据只占一行第二次数据占多行时,这时的gridView会在一行里面上下滑动,鄙人也是初次见到,查了很多资料未果,后经多次修改得出方法,其实很简单,但是鄙人至今未能理解其为何如此,若有大神知道其所以然,还望不吝赐教,小弟感激不尽。在此奉上修改方法。方法就是将最外层的LinearLayout(即红色部分)修改为RelativeLayout。