GridView和各种相关控件的上拉和下拉

下载依赖类库

https://yunpan.cn/cBs8jPPYRQnTV  访问密码 f721

把类库的东西全部复制到工程

在app的bui下添加

dependencies {

    compile ‘com.android.support:recyclerview-v7:23.+‘    compile ‘com.android.support:cardview-v7:23.+‘
}改成相应的v7包的版本号如:7.23

布局中:使用
com.jingchen.pulltorefresh.PullToRefreshLayout作为主布局
<?xml version="1.0" encoding="utf-8"?>
<com.jingchen.pulltorefresh.PullToRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/pulllayout"

    tools:context="tests.bwie.com.mygridview.MainActivity">

    <com.jingchen.pulltorefresh.PullableGridView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"
        android:id="@+id/gv" />
</com.jingchen.pulltorefresh.PullToRefreshLayout>

调用时

package tests.bwie.com.mygridview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.jingchen.pulltorefresh.PullToRefreshLayout;
import com.jingchen.pulltorefresh.PullableGridView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private PullableGridView gv;
    private PullToRefreshLayout pulllayout;
    List<String> list = new ArrayList<>();
    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        pulllayout = (PullToRefreshLayout) findViewById(R.id.pulllayout);
        gv = (PullableGridView) findViewById(R.id.gv);

//        pulllayout.setCustomRefreshView(View);自定义下拉头
//        pulllayout.setCustomLoadmoreView(View v);自定义上拉头

        //设置可以下拉
        pulllayout.setPullDownEnable(true);
        //设置可以上拉
        pulllayout.setPullUpEnable(false);

        for(int i = 0;i<10;i++){
            list.add("视频"+i);
        }

        adapter = new MyAdapter();
        gv.setAdapter(adapter);

        pulllayout.setOnPullListener(new PullToRefreshLayout.OnPullListener() {
            @Override
            public void onRefresh(PullToRefreshLayout pullToRefreshLayout) {

                pulllayout.refreshFinish(PullToRefreshLayout.SUCCEED);
                list.add("hhhh");
                adapter.notifyDataSetChanged();

            }

            @Override
            public void onLoadMore(PullToRefreshLayout pullToRefreshLayout) {

                pulllayout.loadmoreFinish(PullToRefreshLayout.SUCCEED);
                list.add("dddd");
                adapter.notifyDataSetChanged();

            }
        });

        //设置下拉刷新过程监听器
//        pulllayout.setOnRefreshProcessListener(new PullToRefreshLayout.OnPullProcessListener() {
//            @Override
//            public void onPrepare(View v, int which) {
//
//            }
//
//            @Override
//            public void onStart(View v, int which) {
//
//            }
//
//            @Override
//            public void onHandling(View v, int which) {
//
//            }
//
//            @Override
//            public void onFinish(View v, int which) {
//
//            }
//
//            @Override
//            public void onPull(View v, float pullDistance, int which) {
//
//            }
//        });

    }

    class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if(convertView==null){
                convertView=View.inflate(MainActivity.this,android.R.layout.simple_list_item_1,null);
            }
            TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
            tv.setText(list.get(position));
            return convertView;
        }
    }
}
				
时间: 2024-08-01 01:59:21

GridView和各种相关控件的上拉和下拉的相关文章

Android自定义组合控件---教你如何自定义下拉刷新和左滑删除

绪论 最近项目里面用到了下拉刷新和左滑删除,网上找了找并没有可以用的,有比较好的左滑删除,但是并没有和下拉刷新上拉加载结合到一起,要不就是一些比较水的结合,并不能在项目里面使用,小编一着急自己组合了一个,做完了和QQ的对比了一下,并没有太大区别,今天分享给大家,其实并不难,但是不知道为什么网上没有比较好的Demo,当你的项目真的很急的时候,又没有比较好的Demo,那么"那条友谊的小船儿真是说翻就翻啊",好了,下面先来具体看一下实现后的效果吧: 代码已经上传到Github上了,小伙伴们记

Android基础控件——SwipeRefreshLayout最简单的下拉刷新

还在使用传统的下拉刷新,觉得不够漂亮,怕被产品经理骂吗? 还在忧愁自己技术不够好,不会改造带动画的下拉刷新吗? 那么不要担心,使用SwipeRefreshLayout最简单的下拉刷新,既不失美观又简洁 SwipeRefreshLayout下拉刷新是Google自家的下拉刷新控件,使用过程跟开源库PullToRefresh差不多,废话不多说,开车啦 SwipeRefreshLayout实质上是一个ViewGroup,所以我们将其作为我们的根布局进行演示 经过这个步骤之后,其实在页面上就已经能够下拉

自定义SWT控件一之自定义单选下拉框

一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package com.view.control.select; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ScrolledComposite;

自定义SWT控件三之搜索功能下拉框

3.搜索功能下拉弹出框 package com.view.control.select; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import log.HikLog; import org.apache.commons.lang3.StringUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CLa

dev 中 字符串转中文拼音缩写,对grid列表进行模糊匹配,grid获取焦点行,gridlookupedit控件用拼音模糊匹配下拉选项

番外篇:. //该方法是将字符串转化为中文拼音的首写字母大写, public static string RemoveSpecialCharacters(string str){try{if (string.IsNullOrWhiteSpace(str)) { return str; }var result = Regex.Replace(str, "[^0-9A-Za-z]", "");if (string.IsNullOrWhiteSpace(result))

Android新控件RecyclerView浅析及上拉和下拉刷新

概述: RecyclerView是android-support-v7-21版本中新增的一个Widgets,RecyclerView是ListView的升级版本,更加先进和灵活.在以后的开发中我们就可以直接使用RecyclerView来替换ListView. 特点介绍: 1. 可横向展示 2. 消除错位问题 3. 标准化了ViewHolder 横向: private void initHorizaontal(List<ItemModel> models) { RecyclerView recy

如何解决控件附件上传时超大附件无法上传的问题

起因: 我们的附件控件里边,一般情况下默认设置大小为10M,如果我们设置30M的情况,就无法满足上传了. 原因: 是因为我们ajax的一个文件里取我们控件自定义大小的值,无法取到.因为我们传的int类型的值,所以我们在用QueryString取的时候的值为Null. 解决: 打开Portal->Ajax->FileUploadHandler.ashx文件里,找到以下代码: Protected int MaxSize { get { if (!int.TryParse(Request.Query

Android的基本控件(上,章节摘要)

1,Android中的所有组件都是View的子类. 2,如果希望可以固定地显示一些内容,则可以使用文本组件TextView完成. 3,按钮是一种特殊的文本组件,配合以后讲解的事件处理程序,可以更好地完成人机交互操作. 4,文本编辑框的操作中,可以在资源文件中配置下拉选项,也可以通过程序完成配置. 5,在下拉列表框的操作中,可以在资源文件中配置下拉选项,也可以同uochengxu完成配置. 6,图片组件ImageView相当于提供了一个图片的显示容器,可以直接配置要显示的图片. 7,调整时间可以使

Ext.Net 控件FileUploadField上传文件

Ext.Net 控件FileUploadField上传文件提示TypeError: parsedResponse.result is undefined 原因:提交会导致Request Headers改变,Accept属性,表示不接收application/json的数据,这个会在Chrome上执行但是会出提示,在FireFox上根本执行不了,并且报TypeError:result is undefined错误错误写法:返回方法(return this.redirect()) 正确方法: