Android自定义GridView显示一行,并且可以左右滑动
最近做一个类似滑动菜单栏的title,绑定数据源用的是GrildView,想要实现横着滑动并且GrildView只显示一行。最终采用代码形式在Activity中动态的添加布局实现。
ViewGroup.LayoutParams params = dishtype.getLayoutParams(); // dishtype,welist为ArrayList
int dishtypes = welist.size(); params.width = 115 * dishtypes; Log.d("看看这个宽度", params.width+""+welist.size()); dishtype.setLayoutParams(params); //设置列数为得到的list长度
dishtype.setNumColumns(welist.size());
布局文件采用了HorizontalScrollView 这个控件来控制左右滑动。
<HorizontalScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none" > <FrameLayout android:layout_width="match_parent" android:layout_height="80dp" > <LinearLayout android:id="@+id/liear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <GridView android:id="@+id/dishtype" android:layout_width="match_parent" android:layout_height="80dip" android:cacheColorHint="#00000000" android:columnWidth="108dip" android:gravity="center" android:horizontalSpacing="1.0dip" android:listSelector="#00000000" android:numColumns="auto_fit" android:stretchMode="spacingWidthUniform" android:verticalSpacing="1.0dip" > </GridView> </LinearLayout> </FrameLayout> </HorizontalScrollView>