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 自定义toggle Button按钮
- Arduino相关
- Android点击按钮实现全屏的代码
- Android(安卓)9.0 (P版本) 亮度控制接口变更
- android简单的动态控制软键盘的显隐
- android > intent > 自动跳转到 系统 设置 页面
- Android往SD卡上存储文件
- android 按钮变化颜色
- AndroidManifest.xml文件详解(uses-configuration)