20161220
安卓gridview的一些小问题
今天偶然发现之前做的一个gridview显示的表格如果不禁用滑动的方法就会出现下面多出一小截的情况,而由于我需要给gridview加分割线的样式所以给它设置背景是灰色了的,这样就很丑了,查了下布局啥的发现没啥毛病,但运行后就会出现这种情况,分析了下想不出啥情况于是只好动手改改了,然后发现问题还是出在item上,因为表格里面放的是图片而我又不知道图片的大小,所以把整个布局设置成充满以后让图片居中显示的,由于下面还有文字等样式所以设置了一些间距属性估计就是这的问题了,我把外面那个大布局改成自适应后就没有那种情况了。
然后是自定义一个禁止滑动的gridview,因为自带的gridview控件是没有这属性的。
/**
* Created by zyd on 2016/12/20.
* 禁止上下滑动的gridview
*/
public class StationaryGridview extends GridView {
public StationaryGridview(Context context) {
super(context);
}
public StationaryGridview(Context context, AttributeSet attrs) {
super(context, attrs);
}
public StationaryGridview(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
//重写dispatchTouchEvent方法禁止GridView滑动
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_MOVE){
return true;
}
return super.dispatchTouchEvent(ev);
}
}
然后是一些关于gridview常用到的属性:
1.android:numColumns=”auto_fit” //GridView的列数设置为自动
2.android:columnWidth=”90dp " //每列的宽度,也就是Item的宽度
3.android:stretchMode=”columnWidth"//缩放与列宽大小同步
4.android:verticalSpacing=”10dp” //两行之间的边距
5.android:horizontalSpacing=”10dp” //两列之间的边距
6.android:cacheColorHint="#00000000" //去除拖动时默认的黑色背景
7.android:listSelector="#00000000" //去除选中时的黄色底色
8.android:scrollbars="none" //隐藏GridView的滚动条
9.android:fadeScrollbars="true" //设置为true就可以实现滚动条的自动隐藏和显示
10.android:fastScrollEnabled="true" //GridView出现快速滚动的按钮(至少滚动4页才会显示)
11.android:fadingEdge="none" //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。(可以理解为上下边缘的提示色)
12.android:fadingEdgeLength="10dip" //定义的衰落(褪去)边缘的长度
13.android:stackFromBottom="true" //设置为true时,你做好的列表就会显示你列表的最下面
14.android:transcriptMode="alwaysScroll" //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内
15.android:drawSelectorOnTop="false" //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false)