关于SlidingMenu跟PulltoRefresh混用的例子

闲着没事群里吹逼,看到这个问题,我没写过,心血来潮就找着资料写了一个demo。还没适配4.4.4根5.0.2。深更半夜了,明天测。

SlidingMenu根PulltoRefresh直接在网上找到library导进项目就行了。下面是下载地址:https://codeload.github.com/chrisbanes/Android-PullToRefresh/zip/master

https://codeload.github.com/jfeinstein10/SlidingMenu/zip/master
额,这俩地址我也不知道对不对,因为我下载之后就把网页关了,应该是这个,不能下就随便找个嘛,反正百度google一大堆的。
这两个东西都有点老,基本都是ec的lib,怎么搞成as的moudle也自行google。

项目结构
这里写图片描述

下面是代码

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

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

/**
 * author  ${吴心良}
 * data: 2017/3/29.
 */
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SlidingMenu slidingMenu = new SlidingMenu(this);
        //设置左右两个滑动菜单滑动
        slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
        //全屏都能滑动
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        //弄个阴影
        slidingMenu.setShadowDrawable(R.drawable.demo);
        //阴影宽度
        //slidingMenu.setShadowWidthRes();
        // 菜单的宽度
        slidingMenu.setBehindWidth(555);
        //渐变效果
        slidingMenu.setFadeDegree(0.55f);
        //添加
        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        //这个坑,布局里面设置数据要这样设置,马丹,刚刚开始直接在上面设置没数据,郁闷了半天
        //这个坑,布局里面设置数据要这样设置,马丹,刚刚开始直接在上面设置没数据,郁闷了半天
        //这个坑,布局里面设置数据要这样设置,马丹,刚刚开始直接在上面设置没数据,郁闷了半天
        //重要的事情说三遍
        slidingMenu.setMenu(setLeftMenu());
        slidingMenu.setSecondaryMenu(R.layout.sliddingmenu_right);//设置右侧滑的布局文件
        slidingMenu.setSecondaryShadowDrawable(R.drawable.demo);//设置右侧滑的布局效果

    }

    public View setLeftMenu() {
        View view = getLayoutInflater().inflate(R.layout.slidingmenu_left, null);
        final PullToRefreshListView listview = (PullToRefreshListView) view.findViewById(R.id.dongtai_listview);
        //设置上拉和下拉
        listview.setMode(PullToRefreshBase.Mode.BOTH);
        listview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

            }
        });
        //这里设置一些常规的东西
        listview.getLoadingLayoutProxy(true, false).setPullLabel("下拉刷新...");
        listview.getLoadingLayoutProxy(true, false).setRefreshingLabel("正在刷新...");
        listview.getLoadingLayoutProxy(true, false).setReleaseLabel("松开刷新...");
        listview.getLoadingLayoutProxy(false, true).setPullLabel("上拉加载...");
        listview.getLoadingLayoutProxy(false, true).setRefreshingLabel("正在加载...");
        listview.getLoadingLayoutProxy(false, true).setReleaseLabel("松开加载更多...");
        listview.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_expandable_list_item_1, getData()));
        listview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                new AsyncTask<Void, Void, Void>() {
                    @Override
                    protected Void doInBackground(Void... params) {
                        try {
                            Thread.sleep(1500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        return null;
                    }

                    @Override
                    protected void onPostExecute(Void reslst) {
                        //结束刷新
                        listview.onRefreshComplete();
                    }
                }.execute();
            }
        });
        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                                    long arg3) {
                //监听listview item 点击
            }
        });
        return view;
    }

    private List<String> getData() {

        List<String> data = new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            data.add("我是左边第" + i + "个");
        }
        return data;
    }

}

效果图 额,想上传的,结果说我格式不正确,就算了。。。。恩,好了,睡觉了
补充一下源码地址
github源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值