Android 滑动效果代码分享
ORIETech - Mobile Application Development
packagecom.ScrollListView;
importandroid.app.ListActivity;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.AbsListView;
importandroid.widget.BaseAdapter;
importandroid.widget.LinearLayout;
importandroid.widget.ProgressBar;
importandroid.widget.TextView;
importandroid.widget.AbsListView.OnScrollListener;
publicclassEndLessActivityextendsListActivityimplementsOnScrollListener {
Aleph0 adapter=newAleph0();
intmProgressStatus=0;
ProgressBar progressBar;
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout searchLayout=newLinearLayout(this);
searchLayout.setOrientation(LinearLayout.HORIZONTAL);
progressBar=newProgressBar(this);
progressBar.setPadding(0,0,15,0);
searchLayout.addView(progressBar,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
TextView textView=newTextView(this);
textView.setText("加载中...");
textView.setGravity(Gravity.CENTER_VERTICAL);
searchLayout.addView(textView,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT
));
searchLayout.setGravity(Gravity.CENTER);
LinearLayout loadingLayout=newLinearLayout(this);
loadingLayout.addView(searchLayout,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
loadingLayout.setGravity(Gravity.CENTER);
getListView().addFooterView(loadingLayout);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}
publicvoidonScroll(AbsListView view,
intfirstVisible,intvisibleCount,inttotalCount) {
booleanloadMore=/*maybe add a padding*/
firstVisible+visibleCount>=totalCount;
if(loadMore) {
adapter.count+=visibleCount;//or any other amount
adapter.notifyDataSetChanged();
}
}
publicvoidonScrollStateChanged(AbsListView v,ints) { }
classAleph0extendsBaseAdapter {
intcount=40;/*starting amount*/
publicintgetCount() {returncount; }
publicObject getItem(intpos) {returnpos; }
publiclonggetItemId(intpos) {returnpos; }
publicView getView(intpos, View v, ViewGroup p) {
TextView view=newTextView(EndLessActivity.this);
view.setText("entry"+pos);
returnview;
}
}
}
listview下部是按钮控制:
packagecom.ScrollListView;
importandroid.app.ListActivity;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.AbsListView;
importandroid.widget.BaseAdapter;
importandroid.widget.Button;
importandroid.widget.LinearLayout;
importandroid.widget.ProgressBar;
importandroid.widget.TextView;
importandroid.widget.AbsListView.OnScrollListener;
publicclassEndLessActivityextendsListActivity {
Aleph0 adapter=newAleph0();
intmProgressStatus=0;
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout searchLayout=newLinearLayout(this);
searchLayout.setOrientation(LinearLayout.HORIZONTAL);
Button textView=newButton(this);
textView.setText("加载中...");
textView.setGravity(Gravity.CENTER_VERTICAL);
searchLayout.addView(textView,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT
));
searchLayout.setGravity(Gravity.CENTER);
LinearLayout loadingLayout=newLinearLayout(this);
loadingLayout.addView(searchLayout,newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
loadingLayout.setGravity(Gravity.CENTER);
getListView().addFooterView(loadingLayout);
textView.setOnClickListener(newButton.OnClickListener()
{ @Override
publicvoidonClick(View v)
{
adapter.count+=10;
adapter.notifyDataSetChanged();
}
});
setListAdapter(adapter);
//getListView().setOnScrollListener(this);
}
/*public void onScroll(AbsListView view,
int firstVisible, int visibleCount, int totalCount) {
boolean loadMore =
firstVisible + visibleCount >= totalCount;
if(loadMore) {
adapter.count += visibleCount;
adapter.notifyDataSetChanged();
}
}*/
publicvoidonScrollStateChanged(AbsListView v,ints) { }
classAleph0extendsBaseAdapter {
intcount=40;/*starting amount*/
publicintgetCount() {returncount; }
publicObject getItem(intpos) {returnpos; }
publiclonggetItemId(intpos) {returnpos; }
publicView getView(intpos, View v, ViewGroup p) {
TextView view=newTextView(EndLessActivity.this);
view.setText("entry"+pos);
returnview;
}
}
}
更多相关文章
- Android点击按钮实现全屏的代码
- android 按钮变化颜色
- Android 通过按钮弹出菜单(通过Button显示菜单)
- Androidstudio开发button按钮的操作以及项目开发大致过程
- Android之——史上最简单自定义开关按钮的实现
- 安卓开发中开关按钮ToggleButton和开关Switch(总结)
- [Android菜鸟笔记]xml实现编辑框/按钮的椭圆样(shape标签)+应用
- 编写Android自定义按钮