做横向滑动的时候遇到了几个问题:
首先是用HorizontalScrollView直接嵌套GridView,然后发现无论在代码是如何设置setNumColumns的值,GridView每行都只显示一个数据,而且特别窄,图片显示不出来,查询后发现是因为HorizontalScrollView和ScrollView一样,下面需要一层根布局,在HorizontalScrollView和GridView之间加了一层LinearLayout,然后给HorizontalScrollView添加一条属性android:fillViewport="true" 当ScrollView里的元素想填满ScrollView时,使用"fill_parent"是不管用的,必需为ScrollView设置:android:fillViewport="true"。
之后又发现布局最多只能充满屏幕,数据越多,每个item就越小,会让所有的item同时挤在屏幕里,而不能横向滑动,这是因为gridview宽度不能写wrap_content或者match_parent,而需要写固定值,我们可以设置Gridview的layout_width=2000dp,一个可以超出屏幕最大宽度的值。
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<GridView
android:id="@+id/activity_userinfo_gv"
android:layout_width="2000dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/px40_dp"></GridView>
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>