Android 自定义九宫格控件Gridview用法以及属性
来源:互联网 发布:淘宝全屏海报显示不全 编辑:程序博客网 时间:2024/05/16 06:24
九宫格控件Gridview让人熟悉又陌生,它适配器跟listview差不多,常用都是继承baseAdapt 就能快速完成一个适配器,适配器里面的item也可以根据具体情况来写。那在本博客主要是了解Gridview基本属性,以及自定义Gridview与滚动条ScrollBar共存不冲突的情况、重写dispatchTouchEvent方法禁止GridView滑动。
一、Gridview基本属性
android:numColumns=”auto_fit” //GridView的列数设置为自动
android:columnWidth=”90dp " //每列的宽度,也就是Item的宽度
android:stretchMode=”columnWidth"//缩放与列宽大小同步
android:verticalSpacing=”10dp” //两行之间的边距
android:horizontalSpacing=”10dp” //两列之间的边距
android:cacheColorHint="#00000000" //去除拖动时默认的黑色背景
android:listSelector="#00000000" //去除选中时的黄色底色
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)
二、自定义Gridview
重写了onMeasure,dispatchTouchEvent这两个方法。
import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.widget.GridView;public class CustomGridView extends GridView { private boolean haveScrollbar = true; public CustomGridView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomGridView(Context context) { super(context); } public CustomGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } /** * 设置是否有ScrollBar与ScollView中同时显示时,应当设置为true。 默认为 true * * @param haveScrollbars */ public void setHaveScrollbar(boolean haveScrollbar) { this.haveScrollbar = haveScrollbar; } /** * ScollView与ScrollBar共存 */ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (haveScrollbar) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } else { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } //重写dispatchTouchEvent方法禁止GridView滑动 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(ev.getAction() == MotionEvent.ACTION_MOVE){ return true; } return super.dispatchTouchEvent(ev); }}
因为一般使用Gridview控件都会自定义重写它的一些方法来达到UI的要求。这是一种较常见全面自定义重写方法来控制。至于Gridview适配器的跟listview继承baseAdapt一样。
- Android 自定义九宫格控件Gridview用法以及属性
- Android GridView控件(九宫格)
- android实现九宫格 GridView 用法
- Android 九宫格 GridView 的用法
- Android GridView(九宫格)
- 【Android】自定义控件实现九宫格解锁
- Android自定义控件---仿微信群聊(九宫格)头像
- Android自定义控件实现九宫格解锁
- android - GridView属性大全和注意事项,九宫格设计
- Android控件 之 GridView九宫格实现方法一
- Android控件 之 GridView九宫格实现方法二
- 初学android-自定义控件以及控件属性
- android gridview 九宫格布局
- android自定义九宫格
- 自定义控件之九宫格
- Android自定义控件以及控件属性的自定义
- Android自定义控件以及控件属性的自定义
- Android自定义控件以及控件属性的自定义
- C++的类的声明及成员变量和成员函数
- Activiti入门教程二(熟悉数据库设计)
- Linux系统函数write(strlen、sizeof与write结合使用的区别)
- 黑马程序员——ios开发基础之OC中的Foundation框架(一)
- Java基础——switch、循环语句、控制跳转语句
- Android 自定义九宫格控件Gridview用法以及属性
- Node.js开发入门—UDP编程
- My test program from learning "move constructor", "move assignment". For personal memo purpose.
- 伍子胥
- springmvc文件上传的三种方式
- 夫差
- 大学里,应该多一份大方
- 排序算法之希尔排序
- 使用awk命令向集群中其他机器拷贝文件