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关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?