GridView周围空隙两三事

看到大家都在说GridView很鸡肋,用的时候简单但是很难解决一些小问题。多聚集在一些四周边框,空隙的问题上。话不多说,先上图。


GridView周围空隙两三事   GridView周围空隙两三事   GridView周围空隙两三事


很神奇吧,这就是GridView经常能遇到的问题,很困扰,有时候让人么直接放弃选择Listview的原因之一。而且搜索网上的答案,有配置xml文件的,有修改的。还有很多可能会提到这两个属性:verticalSpacing/horizontalSpacing,在我使用的过程中,却发现仍旧没有用(上图三是我的目标状态)


先让我们看一下GridView里面一些“特有”属性吧:


android:numColumns                    /*列数,可以直接指定1列,2列---N列   *auto_fit 自动指定列数:columnWidth和Spacing来计算。比如宽100x,columnWidth为列宽10px,Spacing为间隙5px,那么用总的去除以每一个item的宽,就能得到能放下几行,进行一系列计算。*/


android:columnWidth                  //每列的宽度,也就是Item的宽度


android:verticalSpacing             //竖直间距,行间距


android:horizontalSpacing        //水平间距,列间距


(即使设置行间距和列间距为0dp,仍然有可能出现图中的情况)


android:stretchMode                     /*可以理解缩放模式 columnWidth (列宽缩放) spacingWidth(间隙缩放)当我间隙为0dp,成功的没有显示任意一个item,最重要的一点是没有得到期望的效果*/

android:cacheColorHint="#00000000"        //去除拖动时默认的黑色背景 (99%会用到)


android:listSelector="#00000000"               //去除选中时的黄色底色 (99%会用到)


android:scrollbars="none"                   //隐藏GridView的滚动条


android:fadeScrollbars="true"             //设置为true就可以实现滚动条的自动隐藏和显示


android:fastScrollEnabled="true"      //GridView出现快速滚动的按钮(至少滚动4页才会显示)


android:fadingEdge="none"                //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。(可以理解为上下边缘的提示色)


android:fadingEdgeLength="10dip"   //定义的衰落(褪去)边缘的长度


android:stackFromBottom="true"       //设置为true时,你做好的列表就会显示你列表的最下面


android:transcriptMode="alwaysScroll" //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内


android:drawSelectorOnTop="false"  //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false)


就这样子,很开心的没有得到期待的第一张图,内心是拒绝的,是换ListView做,还是自定义GridView做。那么现在给大家一些建议:


①图片使用.png,透明图层的那种,再结合②


② item中的子元素,<ImageView> 等元素宽高设置 xdp (我的是180dp,你的是多少应该能计算出来)该数值,那么为什么是这个数值不是其他数值呢,我们可以得到以下屏幕的宽度来看看


首先该屏幕为1080*1920(px),然后借助这么一句话:以谷歌的标准,按安卓屏幕宽度为例,一般来说480px对应的density是1.5(也就是hdpi)对应320dp,720px对应的density是2.0(也就是xhdpi)对应360dp,1080px对应的density是3.0(也就是xxhdpi)对应360dp   ------>   360/2 =180dp (ok,到此基本上我是明白了,也完成了我的目标,那么你的目标呢,同时我们也可以依据实际情况,去使用哪些行间距,列间距以及本身了)



最后,还是一点,手机屏幕正在向120*1280--->1080*1920--->4k 进化,所以设置为指定的肯定是不好的,那么用代码去测量屏幕宽度,进行计算就是解决长期适配的一个方向。或者使用我们常用的包裹内容和匹配父元素标签,去规定我们使用的资源图,以及在drawable的hdpi/mipmap的资源文件夹下下功夫了。


(欢迎评论区研究讨论或者联系我一起学习,转载请注明出处,小王同学祝大家开心)

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页