【安卓学习总结】下拉加载

关于在安卓学习中遇到的,需要做一个下拉加载。

根据百度后自己尝试制作了一下。

首先新建一个java类让他继承并实现ListView

会实现下面的几个


    public LoadListView(Context context) {
        super(context);
    }

    public LoadListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public LoadListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public LoadListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

 

 

为他们对加入一个initview(context)方法。


    private void initView(Context context)
    {
        LayoutInflater inflater = LayoutInflater.from(context);
        footer = inflater.inflate(R.layout.layout_foot_boot,null);
        footer.findViewById(R.id.load_layout).setVisibility(View.GONE);
        this.addFooterView(footer);
        this.setOnScrollListener(this);
    }

footer 是一个下拉加载时候播放的动画=-=,例如转圈的

会在一开始初始化一下他的

View footer;

写好以上的代码后,开始监听滚动条

需要实现listview 的滚动监听

public class LoadListView extends ListView implements AbsListView.OnScrollListener

你需要自己定义好

int totalItemCount;//总数量
int lastVisibleItem;//最后一个可见
    @Override
    public void onScroll(AbsListView absListView, int i, int i1, int i2) {
        this.lastVisibleItem = i + i1;
        this.totalItemCount = i2;
    }

    @Override
    public void onScrollStateChanged(AbsListView absListView, int i) {
        if(totalItemCount == lastVisibleItem && i == SCROLL_STATE_IDLE){
            if(!isLoading){
                isLoading = true;
                footer.findViewById(R.id.load_layout).setVisibility(View.VISIBLE);
                //加载更多数据
                iLoadListener.onLoad();
            }

        }
    }

之后定义一下,当数据加载完毕和接口


    //加载完毕
    public void loadComplete(){
        isLoading = false;
        footer.findViewById(R.id.load_layout).setVisibility(View.GONE);
    }

    public void setInterface(ILoadListener iLoadListener){
        this.iLoadListener = iLoadListener;
    }

    //加载更多数据的回调接口
    public interface ILoadListener{
        public void onLoad();
    }

这样一个下拉加载的listview就被封装好了

你可能感兴趣的:(android)