GridView嵌套布局

有时候开发,需要滑动布局的嵌套,而当我们将布局嵌套好了以后,问题就出来,高度不精确,这时候是否可以想想自己哪里出错了呢,大家先看一下有问题的布局  <LinearLayout
            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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章