xlistview上拉加载下拉刷新

package yxr.com.day_520;

import java.util.List;

//javaBean
public class Goods {

private int status;
private String info;
private List<DataBean> data;

public int getStatus() {
    return status;
}

public void setStatus(int status) {
    this.status = status;
}

public String getInfo() {
    return info;
}

public void setInfo(String info) {
    this.info = info;
}

public List<DataBean> getData() {
    return data;
}

public void setData(List<DataBean> data) {
    this.data = data;
}

public static class DataBean {
    /**
     * news_id : 13783
     * news_title : 广州国际瓦业展新闻发布会于羊城吹响号角
     * news_summary : 近日,2016第六届中国(广州)国际瓦业交易会暨制瓦工业展•亚太建筑科技论坛新闻发布会新闻发布会在广州军区珠江宾馆隆重召
     * pic_url : http://f.expoon.com/sub/news/2016/01/18/341493_230x162_0.jpg
     */

    private String news_id;
    private String news_title;
    private String news_summary;
    private String pic_url;

    public String getNews_id() {
        return news_id;
    }

    public void setNews_id(String news_id) {
        this.news_id = news_id;
    }

    public String getNews_title() {
        return news_title;
    }

    public void setNews_title(String news_title) {
        this.news_title = news_title;
    }

    public String getNews_summary() {
        return news_summary;
    }

    public void setNews_summary(String news_summary) {
        this.news_summary = news_summary;
    }

    public String getPic_url() {
        return pic_url;
    }

    public void setPic_url(String pic_url) {
        this.pic_url = pic_url;
    }
}

}
package yxr.com.day_520;

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

import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.bwie.xlistviewlibrary.view.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

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

/**

  • 实现监听(setXListViewListener)

  • url拼接页数;

  • 给xlistview设置可以加载更多;

  • ui隐藏(刷新头 和刷新底部)
    */
    //Activity
    public class MainActivity extends AppCompatActivity {
    String baseUrl = “http://api.expoon.com/AppNews/getNewsList/type/1/p/”;
    int page;
    private XListView xListView;
    List<Goods.DataBean> list = new ArrayList<>(); //大集合
    private MAdapter mAdapter;
    private ImageLoader imageLoaderInstances;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     xListView = (XListView) findViewById(R.id.xlv);
     xListView.setPullLoadEnable(true);// 开启上拉加载更多功能;
     imageLoaderInstances = ImageLoader.getInstance();
     mAdapter = new MAdapter();
     xListView.setAdapter(mAdapter);
     //定义一个请求网络数据
    
     initData( page);
    
     //实现监听设置上下拉的逻辑
     xListView.setXListViewListener(new XListView.IXListViewListener() {
         //下拉刷新
         @Override
         public void onRefresh() {
             page = 0;
             initData( page);
    

page
}

        //上拉加载更多;
        @Override
        public void onLoadMore() {
             page++;
            initData(count);
        }
    });


}
//请求网络方法
private void initData(int page) {
    String mUrl = baseUrl + page;
    new MAsycnTask().execute(mUrl);

}

//配置适配器
private class MAdapter extends BaseAdapter {
    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View viewItem = View.inflate(MainActivity.this, R.layout.lv_item, null);
        TextView textView = (TextView) viewItem.findViewById(R.id.textView);
        ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);
        textView.setText(list.get(i).getNews_title());
        imageLoaderInstances.displayImage(list.get(i).getPic_url(), imageView);


        return viewItem;
    }
}


class  MAsycnTask extends AsyncTask<String,Void,String>{

    @Override
    protected String doInBackground(String... strings) {
        return NetWordUtils.getNetjson(strings[0]);
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        //解析gson
        Gson gson = new Gson();
        Goods goods = gson.fromJson(s, Goods.class);
        List<Goods.DataBean> data = goods.getData();

        list.addAll(data);
        mAdapter.notifyDataSetChanged();
        uiComplete();//让刷新头和刷新底部隐藏;


    }
}

private void uiComplete() {
    xListView.setRefreshTime("刚刚刷新");
    xListView.stopRefresh();//隐藏刷新头部
    xListView.stopLoadMore();//隐藏刷新脚部


}

}
package yxr.com.day_520;

import android.app.Application;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

/**

  • author:Created by WangZhiQiang on 2017-10-10.

  • 系统启动 会先运行这个MApp,所以我们在这里进行初始化 框架 组件等等;
    */
    // App
    public class MApp extends Application{

    @Override
    public void onCreate() {
    super.onCreate();

     //初始化组件,图片框架
     ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build();
     ImageLoader.getInstance().init(configuration);
    

    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 中实现上拉加载下拉刷新常用的库有`better-scroll`和`vue-pull-to`等。 ## 使用 better-scroll 实现上拉加载下拉刷新 1. 安装 better-scroll 库 ```bash npm install better-scroll -S ``` 2. 在需要实现滚动的组件内引入 better-scroll,并进行初始化配置 ```html <template> <div class="scroll-wrapper"> <div class="scroll-content"> <!-- 这里是滚动内容 --> </div> </div> </template> <script> import BScroll from 'better-scroll' export default { mounted() { this.scroll = new BScroll('.scroll-wrapper', { // better-scroll 的配置项 probeType: 3, // 实时派发scroll事件 pullUpLoad: true, // 开启上拉加载 pullDownRefresh: true // 开启下拉刷新 }) this.scroll.on('pullingUp', () => { // 触发上拉加载时的操作 }) this.scroll.on('pullingDown', () => { // 触发下拉刷新时的操作 }) }, destroyed() { this.scroll.destroy() // 销毁 better-scroll 实例 } } </script> ``` 3. 在 better-scroll 的配置项中开启上拉加载下拉刷新,并添加对应的事件监听 ```javascript this.scroll = new BScroll('.scroll-wrapper', { probeType: 3, pullUpLoad: true, // 开启上拉加载 pullDownRefresh: true // 开启下拉刷新 }) // 上拉加载事件 this.scroll.on('pullingUp', () => { // 执行上拉加载操作 }) // 下拉刷新事件 this.scroll.on('pullingDown', () => { // 执行下拉刷新操作 }) ``` ## 使用 vue-pull-to 实现上拉加载下拉刷新 1. 安装 vue-pull-to 库 ```bash npm install vue-pull-to -S ``` 2. 在需要实现滚动的组件内引入 vue-pull-to,并添加对应的事件监听 ```html <template> <vue-pull-to @refresh="onRefresh" @load-more="onLoadMore" :pullDownText="'下拉刷新'" :pullUpText="'上拉加载更多'" :pullingDownText="'释放立即刷新'" :pullingUpText="'释放立即加载'" > <!-- 这里是滚动内容 --> </vue-pull-to> </template> <script> export default { methods: { onRefresh() { // 触发下拉刷新时的操作 }, onLoadMore() { // 触发上拉加载时的操作 } } } </script> ``` 在 vue-pull-to 组件中,提供了`refresh`和`load-more`两个事件用于触发下拉刷新上拉加载操作。 3. 在 vue-pull-to 组件中设置相应的文字提示和样式等属性 ```html <vue-pull-to @refresh="onRefresh" @load-more="onLoadMore" :pullDownText="'下拉刷新'" :pullUpText="'上拉加载更多'" :pullingDownText="'释放立即刷新'" :pullingUpText="'释放立即加载'" > <!-- 这里是滚动内容 --> </vue-pull-to> ``` 在 vue-pull-to 组件中,可以通过`pullDownText`、`pullUpText`、`pullingDownText`和`pullingUpText`等属性来设置文字提示和样式等属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值