zoukankan      html  css  js  c++  java
  • 使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 实现横向滚动

  • 相关阅读:
    iOS 8 UIAlertController 和 UIAlertAction
    iOS 利用异常 NSException 调试代码
    iOS 开发 atomic 与 nonatomic 区别
    iOS 9 HTTPS 的配置
    关于Frame加背景的那点事?
    java thread 线程锁同步,锁,通信
    java反射机制
    Java序列化与反序列化
    Java内存分配以及GC
    JavaBean入门笔记
  • 原文地址:https://www.cnblogs.com/RabbitLx/p/5847193.html
Copyright © 2011-2022 走看看