1. activity_main.xml布局
2. loading_view.xml布局
3. SimpleAdapter.java
package com.idt.os.frameplay;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
* Created by jzhou on 2018/5/24.
*/
public class SimpleAdapter extends BaseAdapter
{
private int mCount = 20;
private final LayoutInflater mLayoutInflater;
private final String mPositionString;
private final int mTextViewResourceId;
public SimpleAdapter(Context context,int mTextViewResourceId) {
this.mTextViewResourceId = mTextViewResourceId;
mPositionString = context.getString(R.string.position)+" ";
mLayoutInflater = LayoutInflater.from(context);
}
public void addMoreItems(int count){
mCount += count;
notifyDataSetChanged();
}
@Override
public int getCount() {
return mCount;
}
@Override
public String getItem(int position) {
return mPositionString+position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final TextView tv;
if(convertView == null){
tv = (TextView) mLayoutInflater.inflate(mTextViewResourceId,null);
}else {
tv = (TextView) convertView;
}
tv.setText(getItem(position));
return tv;
}
}
4.AutoLoadingListFragment.java
package com.idt.os.frameplay;
import android.app.ListFragment;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;
/**
* Created by jzhou on 2018/5/24.
*/
public class AutoloadingListFragment extends ListFragment implements AbsListView.OnScrollListener {
private final int AUTOLOAD_THRESHOLD = 4;
private final int MAXIMUM_ITEMS = 52;
private SimpleAdapter mAdapter;
private View mFooterView;
private Handler mHandler;
private boolean mIsLoading = false;
private boolean mMoreDataAvailable = true;
private boolean mWasloading = false;
private Runnable mAddItemsRunnable = new Runnable() {
@Override
public void run() {
mAdapter.addMoreItems(10);
mIsLoading = false;
}
};
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final Context context = getActivity();
mHandler = new Handler();
mAdapter = new SimpleAdapter(context,android.R.layout.simple_list_item_1);
mFooterView = LayoutInflater.from(context).inflate(R.layout.loading_view,null);
getListView().addFooterView(mFooterView,null,false);
setListAdapter(mAdapter);
getListView().setOnScrollListener(this);
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(!mIsLoading && mMoreDataAvailable){
if(totalItemCount >= MAXIMUM_ITEMS){
mMoreDataAvailable = false;
getListView().removeFooterView(mFooterView);
}else if(totalItemCount - AUTOLOAD_THRESHOLD
关注
打赏
