android:让List以列的方式显示

来源:互联网 发布:淘宝的流量指数是什么 编辑:程序博客网 时间:2024/05/06 06:56

如图:
实现这样的界面
传统的GradView无法直接实现,为什么说是无法直接实现呢?也就是说还是可以实现的。
实现方式就是把list变换一下,实现方式如下:

    private String[] wordArr = new String[]{"地毯", "公里", "唇", "双生儿", "狗窝", "剃刀", "橙", "允许", "香水", "发刷", "河马", "战舰", "跑步者", "坚果", "游艇", "风格", "省略", "意思", "小猫", "羽毛",            "报纸", "知道", "鲍鱼", "套头毛衣", "恐龙", "伞", "梯子", "退休", "石英", "衣领", "项链", "吸收", "车库", "誓约", "格子饼", "拉链", "头痛", "虹膜", "失业", "雨雪",            "斑马", "手表", "飞机", "教练", "文具", "坐浴盆", "工作", "羊毛", "组织", "录像", "苹果", "雨", "须", "婴儿", "骑师", "鼓槌", "鼓", "编辑", "资格", "行政人员",            "报纸", "知道", "鲍鱼", "套头毛衣", "恐龙", "伞", "梯子", "退休", "石英", "衣领", "项链", "吸收", "车库", "誓约", "格子饼", "拉链", "头痛", "虹膜", "失业", "雨雪",            "开始", "维他命", "股东", "面包店", "大自然", "股东", "梯子", "退休", "石英", "衣领", "项链", "吸收", "车库", "誓约", "格子饼", "拉链", "头痛", "虹膜", "失业", "雨雪",};    public int rows = 20;//每列20个数据    public static int line = 5;//每行词语的个数    public String[] wordEntities;//变换之后的数组

每一列20个。
数据变换,就是重新new 一个数组,把之前wordArr的第21(下标为20)个放到第二个去,第41(下标为40)个,放到第三个去。

public void parseData() {        wordEntities = new String[rows *(wordArr.length/rows)];        for (int i = 0; i < wordArr.length; i++) {                  int index = rows*(i%line)+(i/line)+1            wordEntities[i] = wordArr[index];        }    }
这样数据就OK了,接下来GradView的adater实现还是照样,这里就不写了。第二种方式,5.0出了个RecycleView,这是个好东西啊,用RecycleView就没有这么多的麻烦事了,直接可以实现。
GridLayoutManager manager = new GridLayoutManager(getActivity(), 20);//每列20个数据manager.setOrientation(GridLayoutManager.HORIZONTAL);        wordRv.setLayoutManager(manager);        //水平按列展开

其它的带码就略过了。

0 0
原创粉丝点击