最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Android编程实现ListView滚动提示等待框功能示例
时间:2017-04-03 编辑:简简单单 来源:一聚教程网
其实原理很简单,只需要设置监听listview的滚动事件即可
file1:
代码如下 | 复制代码 |
packagecn.stay.activity; importjava.util.ArrayList; importjava.util.List; importcom.aoran.R; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.AbsListView; importandroid.widget.AbsListView.OnScrollListener; importandroid.widget.LinearLayout; importandroid.widget.ListView; importandroid.widget.ProgressBar; /** * @author riddlezhang * 滚动listview提示等待框 */ publicclassListView_sepextendsActivityimplementsOnScrollListener { privateList privateListView listv01; privateMyAdapter adapter; privateintcurrent_page =2; ProgressBar progressBar; privateLinearLayout bottom_linear; privateintlastItem; @Override protectedvoidonCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); listv01 = (ListView) findViewById(R.id.listv01); bottom_linear=(LinearLayout) findViewById(R.id.bottom_linear); for(inti =0; i <100; i++) { list.add("i="+i); } adapter =newMyAdapter(ListView_sep.this, list); listv01.setAdapter(adapter); // listv01.setSelection(getSingerStrs().size()-1); 设置每次最后一行被选中 listv01.setOnScrollListener(this); } @Override publicvoidonScrollStateChanged(AbsListView view,intscrollState) { if(lastItem==adapter.count && scrollState == OnScrollListener.SCROLL_STATE_IDLE) { if((list.size() - current_page *10) >0) { bottom_linear.setVisibility(View.VISIBLE); if((list.size() - current_page *10) >=10) { adapter.count +=10; }else{ adapter.count += (list.size() - current_page *10); } current_page++; adapter.notifyDataSetChanged(); // bottom_linear.setVisibility(View.GONE); } } } @Override publicvoidonScroll(AbsListView view,intfirstVisibleItem, intvisibleItemCount,inttotalItemCount) { lastItem=firstVisibleItem+visibleItemCount; } } |
file2:
代码如下 | 复制代码 |
packagecn.stay.activity; importjava.util.List; importcom.aoran.R; importandroid.content.Context; importandroid.view.LayoutInflater; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.BaseAdapter; importandroid.widget.TextView; publicclassMyAdapterextendsBaseAdapter{ privateContext mContext; privateList publicintcount=20; privateViewHolder holder; publicMyAdapter(Context mContext,List this.mContext=mContext; this.list=list; } @Override publicintgetCount() { returncount; } @Override publicObject getItem(intposition) { // TODO Auto-generated method stub returnlist.get(position); } @Override publiclonggetItemId(intposition) { returnposition; } @Override publicView getView(intposition, View convertView, ViewGroup parent) { // TODO Auto-generated method stub if(convertView==null|| convertView.getTag()==null){ convertView=LayoutInflater.from(mContext).inflate(R.layout.adapter,null); holder =newViewHolder(); holder.adapter_tv=(TextView) convertView.findViewById(R.id.adapter_tv); convertView.setTag(holder); }else{ holder=(ViewHolder) convertView.getTag(); } holder.adapter_tv.setText(list.get(position)); returnconvertView; } privateclassViewHolder{ privateTextView adapter_tv; } } |
file3:
main.xml
代码如下 | 复制代码 |
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/project_main_bg" > |
-
下一个: 新浪微博app怎么付费
相关文章
- Android TextView 字体滚动效果的实现教程 02-13
- Android ScrollView滚动机制及嵌套滑动机制NestedScrolling 11-17
- Android ViewPager和ScrollView嵌套滚动如何解决 04-23
- sora软件价格介绍 02-22
- sora官网入口地址一览 02-22
- Sora生成的视频使用教程 02-22