2 luycc luycc 于 2017.08.29 17:28 提问

解决gridView的item排列!

急用,我现在在做一个项目,其中有个网格式的布局,我想过要用自定义view去实现,
但是琢磨了半天硬是没做出来,就用gridView来写。然后我现在的问题是 gridView都是从左边进行排列的,当我有四个item的,我用gridView就实现不了了。所以我想问一下各位大神,有没有人知道该怎么做这个,或是怎么设置grid View的item的排列呢???![图片说明](http://img.ask.csdn.net/upload/201708/29/1503998772_751741.png)图片说明

6个回答

anyanyan07
anyanyan07   2017.08.29 18:03
已采纳

可以通过改变数据的排列方式来实现你的需求,不过逻辑可能有点复杂,通过data.size()/3判断奇偶行,如果是奇数行就正常顺序排列,如果是偶数行,还要进一步判断:此行的数据是否大于等于3,如果大于等于3,将这三个数据倒序排列,如果只有两个,前面加一个空的占位数据,如果只有一个数据,前面加两个空的占位数据.应该就可以实现了.

luycc
luycc 可是这样的画怎么改变她的排列我有点懵。我理解是这样的一个意思。但是我去做代码的时候无从下手,不知道改怎么改变其排列顺序,排列顺序可以改变嘛?您可以方便说i一下嘛
3 个月之前 回复
lcmsx
lcmsx   2017.08.29 17:46

大哥,你是否需要说明一下你使用的技术呢? HTML? WinForm? WPF? Java?MFC? 还是啥??

luycc
luycc 我使用的java的呢
3 个月之前 回复
lcmsx
lcmsx   2017.08.29 17:49

再者,你给出的图的效果其实根本不用gridView,如果是HTML,最简单的table就可以实现。能够简单实现的情况下,简单实现最好,也好维护,控件越复杂,维护难度越高。你这样的界面简单实现就好,不一定非要使用某一个控件的。变通点更好的。

luycc
luycc 我这个是Android开发的,有一点就是个数不同,排列起来也不相同。gridview默认排列顺序是从左到右,我现在如果只有四个审批人,则第四个的时候我希望是从右排列过来的。这个item的排列 有点麻烦。
3 个月之前 回复
baidu_26611019
baidu_26611019   2017.08.29 18:09

这个应该不是问题吧!android的gridview可以设置每行的item个数,html5有table可以代替,相信其他技术也有相应的属性设置,仔细找找。

baidu_26611019
baidu_26611019 设置android:columnCount="4" 和 android:orientation="horizontal" 后,每行就默认排4个控件,第五个控件自动排在第二行。
3 个月之前 回复
luycc
luycc 回复蚂蚁冲锋队: 怎么换行排列?
3 个月之前 回复
baidu_26611019
baidu_26611019 android:columnCount="4"//该网格布局有4列 android:orientation="horizontal" //水平依次排列,排满4列后,换行排列
3 个月之前 回复
baidu_26611019
baidu_26611019 android的那绝对不是问题啊!把你的控件放到gridlayout里面然后做如下配置
3 个月之前 回复
luycc
luycc Android的,很抱歉,我没有说清楚,找了太久了。有点懵逼,给忘了
3 个月之前 回复
Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.08.29 18:22

为啥四个实现不了了,,,,十个八个和两个三个四个
知识item中的数据变了,,gridview记左上角为0,,,
没关系在数据上做手脚就可以,,根据输入数据对数据进行排序

你这个需求,我感觉,,第一行不用变,,第二行倒序,第三行不变,,,以此类推,,基本上是可以完成这个需求的。

luycc
luycc 回复小鼠标丶:谢谢了。我还得再试试哈~
3 个月之前 回复
Small_Mouse0
Small_Mouse0 回复luycc: 不客气,,,帮助你成功了,,给个采纳就行,,,哈哈(●'◡'●)
3 个月之前 回复
luycc
luycc 回复小鼠标丶: 这样子吗?我看看,谢谢了
3 个月之前 回复
Small_Mouse0
Small_Mouse0 回复luycc: 你确定你不会反序,,,数组倒序行不行?从两头往中间依次访问,逐个交换信息,,,你这里应该是个List,ArrayList和数组一个道理,,add,remove就可以,(可能有api,直接交换)
3 个月之前 回复
luycc
luycc 回复小鼠标丶: 对啊,可是反序怎么弄啊?
3 个月之前 回复
Small_Mouse0
Small_Mouse0 回复luycc: ,,不是很难我感觉,,,加入你有13个数据,一行放4个,,前四个正序,5-8个反序,9-12正序,13逆序,,,很有规律的
3 个月之前 回复
luycc
luycc 可是这样的画怎么改变她的排列我有点懵。我理解是这样的一个意思。但是我去做代码的时候无从下手,不知道改怎么改变其排列顺序
3 个月之前 回复
u011315960
u011315960   2017.08.30 10:35

android的GridView默认是从左往右,没有其他的设置,如果你想要实现这种效果,只有两种办法:
1、改变数据的顺序,而不是让布局发生变化。
2、自己实现一个类似于GridView的效果。

luycc
luycc 回复li504799868: 嗯,谢谢了。
3 个月之前 回复
u011315960
u011315960 整体的实现思路是对3取模 ,判断是单数还是双数(包括0),如果是单数需要把这段数据倒序
3 个月之前 回复
u011315960
u011315960 恩 其实这个处理 要不是在数据中 要么是在布局中 肯定都是需要你自己来解决的 但是思路都是一样的 你可以根据你的个人情况 选择一个解决方案
3 个月之前 回复
luycc
luycc 我还是觉得你这样从数据源会比较好一些
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片