zoukankan      html  css  js  c++  java
  • GridView禁止上下滚动的方法

       通常情况下,我们使用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);
  • 相关阅读:
    C语言实现的单链表
    单链表创建链表出现问题
    Windows10更新后出现右击文件卡死
    顺序表的错误
    XML 字符串 转 JSON
    xml to json
    excel xlsx-js 细节链接
    关于javasciprt导出excel 一
    关于javasciprt导出excel 前言
    书签8
  • 原文地址:https://www.cnblogs.com/BoBoMEe/p/4534231.html
Copyright © 2011-2022 走看看