使GridView可以单行横向滑动

  最近做的练手的小项目中存在一个横向滑动的问题,需要HorizontalScroll中嵌套GridView,但是GridView默认是竖直排放的item,况且HorizontalScroll与GridView都属于存在滚动条的控件,所以会有一些冲突问题,这里上网搜索了一下,发现了一个较为简单的解决办法,就是在java代码中动态的设置GridView的numColumns属性、每项Item的宽度和GridView的总宽度。将numColumns设置为与list集合的长度一致,下面贴出关键代码:

 1             int length = 150;  //定义一个长度
 2                     int size = groupBuyList.size();  //得到集合长度
 3                     //获得屏幕分辨路
 4                     DisplayMetrics dm = new DisplayMetrics();
 5                     getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
 6                     float density = dm.density;
 7 //                    Log.d(TAG, "handleMessage: "+density);
 8                     int gridviewWidth = (int) (size * (length + 10) * density);
 9                     int itemWidth = (int) (length * density);
10 
11                     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
12                             gridviewWidth, LinearLayout.LayoutParams.MATCH_PARENT);
13                     myGirdView.setLayoutParams(params); // 设置GirdView布局参数,横向布局的关键
14                     myGirdView.setColumnWidth(itemWidth); // 设置列表项宽
15                     myGirdView.setHorizontalSpacing(15); // 设置列表项水平间距
16                     myGirdView.setStretchMode(GridView.NO_STRETCH);
17                     myGirdView.setNumColumns(size); // 设置列数量=列表集合数

效果如下所示:

下面这两篇比较相似的博文都有简单的完整的代码,不过只是一个演示Demo的代码,想了解的朋友们可以过去围观一下:

 

Android GridView实现横向滚动

Android 横向列表GridView 实现横向滚动

posted @ 2016-09-06 21:13  Rabbit丶  阅读(6220)  评论(0编辑  收藏  举报