通常情况下,我们使用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. 使用jQuery动态加载js脚本文件的方法

    动态加载Javascript是一项非常强大且有用的技术.这方面的主题在网上已经讨论了不少,我也经常会在一些个人项目上使用RequireJS和Dojo加载js 它们很强大,但有时候也会得不偿失.如果你使 ...

  2. c#解析xml字符串 分析 EntityName 时出错

    因为xml字符串中的特殊html字符被转义了,怎么防止转义呢,可以在xml内加上<![CDATA[返回内容]] 这样可以防止特殊字符被转义,就好像微信公共平台消息传递也都是xml格式他们也都加& ...

  3. coroutine协程

    如果你接触过lua这种小巧的脚本语言,你就会经常接触到一个叫做协程的神奇概念.大多数脚本语言都有对协程不同程度的支持.但是大多编译语言,如C/C++,根本就不知道这样的东西存在.当然也很多人研究如何在 ...

  4. java Active Object模式(上)

    Active Object模式简介 Active Object模式是一种异步编程模式.它通过对方法的调用与方法的执行进行解耦来提高并发性.若以任务的概念来说,Active Object模式的核心则是它 ...

  5. 大众点评试水O2O新模式:实体店试穿,扫描二维码付款 现场取货

    在餐饮美食行业取得不错的成绩之后,大众点评将触角延伸到了线下的传统商铺,开始涉足线下商品的 O2O 团购.和传统的线上下单,线下消费的 O2O 模式不同.大众点评的 O2O 团购用户,可在店内试穿后通 ...

  6. myisam和innodb索引实现的不同

    1.MyISAM 使用B+Tree 作为索引结构,叶子节点的data存放指针,也就是记录的地址.对于主键索引和辅助索引都是一样的.2.InnoDB 也使用B+Tree作为索引结构,也别需要注意的是,对 ...

  7. 基于百度定位SDK的定位服务的实现

    转载请标明出处:http://blog.csdn.net/android_ls/article/details/10179013 一.定位模块的需求:我们想知道使用我们应用的用户的大概位置,每隔五分钟 ...

  8. 本地yum源

    <pre name="code" class="html">1.为DVD创建一个挂载目录 [root@localhost ~]# mkdir /me ...

  9. a great tool for automatically formating your code!

    1. make your own format file at your project's root or file's folder. (The clang-format will automat ...

  10. Beauty Contest(graham求凸包算法)

    Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 25256   Accepted: 7756 Description Bess ...