通常情况下,我们使用GridView来完成类似表格的布局,这种布局,我们只需要设置列数,会自动根据适配器的数据进行适配,非常灵活.

GridView其实就是一个容器.允许向其内部添加控件,通常情况下,其内部类似一个ScrollView.是可以上下滑动的,很好的做到了屏幕适配.但是在有些情况下.我们需要GridView内部是不可以滑动的,在API中是没有这一项的,想简单又快速的实现,到底有没有什么好方法呢?

答案是有点.下面我们通过三种方式来实现这种需求:

①最简单的实现方式:

gridView_sort.setOnTouchListener(new View.OnTouchListener() {

                @Override
public boolean onTouch(View v, MotionEvent event) {
return MotionEvent.ACTION_MOVE == event.getAction() ? true
: false;
}
});

②自定义View的实现方式

重写dispatchTouchEvent

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_MOVE)
{
return true;
}
return super.dispatchTouchEvent(ev);
}

同时,这种方式指示禁止了GridView的上下滑动问题,并没有从根本上解决问题,因为GridView是有高度的,这样其实还是可以看到GridView类似ScrollView可以上下滑动的影子,于是,我们想到了另一种方式,那就是设置GridView 的高度,

艰难的折腾之路开始了,断点尝试了多次,也没有得到GridView 的高度.后来追踪一下发现,GrivdView的高度值只有在Adatpter的getView   才会有值 ,并且前几次调用时还没有,后面才有的。

public View getView(int position, View convertView, ViewGroup parent) {         convertView = LayoutInflater.from(context).inflate(R.layout.item, null);           AbsListView.LayoutParams param = new AbsListView.LayoutParams(                 android.view.ViewGroup.LayoutParams.FILL_PARENT,                 mGv.getHeight()/ROW_NUMBER);

GridView禁止上下滚动的方法的更多相关文章

  1. 【M11】禁止异常流出析构方法之外

    1.在两种情况下,调用析构方法:a.在正常状态下被销毁,栈上的对象离开作用域或者堆上的对象执行delete:b.抛出异常,堆栈回滚,栈上已经构造好的对象,也就是抛出异常之前的代码,自动调用析构方法.注 ...

  2. PowerShell因为在此系统中禁止执行脚本解决方法

    PowerShell因为在此系统中禁止执行脚本解决方法   在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 " ...

  3. Spring boot 内置tomcat禁止不安全HTTP方法

    Spring boot 内置tomcat禁止不安全HTTP方法 在tomcat的web.xml中可以配置如下内容,让tomcat禁止不安全的HTTP方法 <security-constraint ...

  4. TextView不用ScrollViewe也可以滚动的方法

    转自:http://www.jb51.net/article/43377.htm android TextView不用ScrollViewe也可以滚动的方法. TextView textview = ...

  5. jquery 禁止滚动条滚动,并且滚动条不消失,页面大小不闪动

    一,禁止滚动,滚动条不消失,页面大小不闪动 //禁止滚动条滚动 function unScroll() { var top = $(document).scrollTop(); $(document) ...

  6. MUI框架a链接href跳转失效解决方法,解决MUI页面不会滚动的方法

    //解决 所有a标签 导航不能跳转页面 mui('body').on('tap','a',function(){document.location.href=this.href;}); //解决MUI ...

  7. jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法

    本文实例讲述了jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法.分享给大家供大家参考.具体实现方法如下: 这里主要通过val方法设置按钮的文字,并用attr方法修改disabled属性实 ...

  8. js禁止滚动条滚动,并且滚动条不消失,页面大小不变

    //禁止滚动条滚动 function unScroll() { var top = $(document).scrollTop(); $(document).on('scroll.unable',fu ...

  9. 移动端vue页面禁止移动/滚动

    当需要在移动端中禁止页面滚动,加入:@touchmove.prevent即可,例子如下 <template> <div @touchmove.prevent> <h3 c ...

随机推荐

  1. 练习2 C - 成绩转换

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 输入一个百 ...

  2. 在Ubuntu12.0.4下搭建TFTP服务器

    一.安装相关安装包 tftpd(服务端),tftp(客户端) sudo apt-get install tftp-hpa tftpd-hpa 安装xinetd sudo apt-get install ...

  3. ios 排序汇总

    ios 排序汇总  IOS几种简单有效的数组排序方法 //第一种,利用数组的sortedArrayUsingComparator调用 NSComparator ,obj1和obj2指的数组中的对象 N ...

  4. NSString 练习

        //将“⽂文艺⻘青年”改成“213⻘青年”.   NSString *str = @"文艺青年";   NSString *str1 = [str stringByRepl ...

  5. 转:php中实现精确设置session过期时间的方法

    原文来自于:http://www.jb51.net/article/52309.htm 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下 ...

  6. 会声会影X6-高级运动等效果的练习实践-与您分享...

          视频片说明:我在学习X6的视频教程后,做了针对性练习与实 践,我所用的素材取于网络世界-百度下载,视频中的效果有,高级运动;平移缩放,分屏效果,<运用:关键帧,缩放,旋转,加相框,倒 ...

  7. Gridview BottomPagerRow添加自定义控件

    pager.ascx public partial class pager : System.Web.UI.UserControl{ } .aspx protected pager ctl; prot ...

  8. VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序

    原文:VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序 在开发环境(Win7+VS2010+Outlook 2010)上做一个Outlook AddIn,运行Outlook时报如下错误: ...

  9. mysql 树形数据,层级数据Managing Hierarchical Data in MySQL

    原文:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ 引言 大多数用户都曾在数据库中处理过分层数据(hiera ...

  10. Linux Shell编程(4)——shell特殊字符(上)

    在脚本或其他别的地方出现的特殊字符#注释. 以一个#开头的行 (#!是例外) 是注释行.# 这是一行注释.注释也可以出现在一个命令语句的后面.echo "A comment will fol ...