企业互联网服务培训资料doc 60页完美优质版Word下载.docx
- 文档编号:21737138
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:75
- 大小:33.74KB
企业互联网服务培训资料doc 60页完美优质版Word下载.docx
《企业互联网服务培训资料doc 60页完美优质版Word下载.docx》由会员分享,可在线阅读,更多相关《企业互联网服务培训资料doc 60页完美优质版Word下载.docx(75页珍藏版)》请在冰豆网上搜索。
//--headerview
privateXListViewHeadermHeaderView;
//headerviewcontent,useittocalculatetheHeader'
sheight.Andhideit
//whendisablepullrefresh.
privateRelativeLayoutmHeaderViewContent;
privateTextViewmHeaderTimeView;
privateintmHeaderViewHeight;
//headerview'
sheight
privatebooleanmEnablePullRefresh=true;
privatebooleanmPullRefreshing=false;
//isrefreashing.
//--footerview
privateXListViewFootermFooterView;
privatebooleanmEnablePullLoad;
privatebooleanmPullLoading;
privatebooleanmIsFooterReady=false;
//totallistitems,usedtodetectisatthebottomoflistview.
privateintmTotalItemCount;
//formScroller,scrollbackfromheaderorfooter.
privateintmScrollBack;
privatefinalstaticintSCROLLBACK_HEADER=0;
privatefinalstaticintSCROLLBACK_FOOTER=1;
privatefinalstaticintSCROLL_DURATION=400;
//scrollbackduration
privatefinalstaticintPULL_LOAD_MORE_DELTA=50;
//whenpullup>
=50px
//atbottom,trigger
//loadmore.
privatefinalstaticfloatOFFSET_RADIO=1.8f;
//supportiOSlikepull
//feature.
privateintid;
/**
*@paramcontext
*/
publicXListView(Contextcontext){
super(context);
initWithContext(context);
}
publicXListView(Contextcontext,AttributeSetattrs){
super(context,attrs);
publicXListView(Contextcontext,AttributeSetattrs,intdefStyle){
super(context,attrs,defStyle);
privatevoidinitWithContext(Contextcontext){
mScroller=newScroller(context,newDecelerateInterpolator());
//XListViewneedthescrollevent,anditwilldispatchtheeventto
slistener(asaproxy).
super.setOnScrollListener(this);
//initheaderview
mHeaderView=newXListViewHeader(context);
mHeaderViewContent=(RelativeLayout)mHeaderView
.findViewById(R.id.xlistview_header_content);
mHeaderTimeView=(TextView)mHeaderView
.findViewById(R.id.xlistview_header_time);
addHeaderView(mHeaderView);
//initfooterview
mFooterView=newXListViewFooter(context);
//initheaderheight
mHeaderView.getViewTreeObserver().addOnGlobalLayoutListener(
newOnGlobalLayoutListener(){
@Override
publicvoidonGlobalLayout(){
mHeaderViewHeight=mHeaderViewContent.getHeight();
getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
});
publicvoidsetAdapter(ListAdapteradapter){
//makesureXListViewFooteristhelastfooterview,andonlyaddonce.
if(mIsFooterReady==false){
mIsFooterReady=true;
addFooterView(mFooterView);
super.setAdapter(adapter);
*enableordisablepulldownrefreshfeature.
*
*@paramenable
publicvoidsetPullRefreshEnable(booleanenable){
mEnablePullRefresh=enable;
if(!
mEnablePullRefresh){//disable,hidethecontent
mHeaderViewContent.setVisibility(View.INVISIBLE);
}else{
mHeaderViewContent.setVisibility(View.VISIBLE);
*enableordisablepulluploadmorefeature.
publicvoidsetPullLoadEnable(booleanenable){
mEnablePullLoad=enable;
mEnablePullLoad){
mFooterView.hide();
mFooterView.setOnClickListener(null);
mPullLoading=false;
mFooterView.show();
mFooterView.setState(XListViewFooter.STATE_NORMAL);
//both"
pullup"
and"
click"
willinvokeloadmore.
mFooterView.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
startLoadMore();
*stoprefresh,resetheaderview.
publicvoidstopRefresh(){
if(mPullRefreshing==true){
mPullRefreshing=false;
resetHeaderHeight();
*stoploadmore,resetfooterview.
publicvoidstopLoadMore(){
if(mPullLoading==true){
mFooterView.setEnabled(true);
*setlastrefreshtime
*@paramtime
publicvoidsetRefreshTime(){
//mHeaderTimeView.setText(newDate().toLocaleString());
mHeaderTimeView.setText(date());
//获取系统时间
publicStringdate(){
SimpleDateFormatsdf=newSimpleDateFormat("
yyyy-MM-ddHH:
mm:
ss"
);
Datedate=newDate();
Stringt=sdf.format(date);
returnt;
privatevoidinvokeOnScrolling(){
if(mScrollListenerinstanceofOnXScrollListener){
OnXScrollListenerl=(OnXScrollListener)mScrollListener;
l.onXScrolling(this);
privatevoidupdateHeaderHeight(floatdelta){
mHeaderView.setVisiableHeight((int)delta
+mHeaderView.getVisiableHeight());
if(mEnablePullRefresh&
&
!
mPullRefreshing){//未处于刷新状态,更新箭头
if(mHeaderView.getVisiableHeight()>
mHeaderViewHeight){
mHeaderView.setState(XListViewHeader.STATE_READY);
mHeaderView.setState(XListViewHeader.STATE_NORMAL);
setSelection(0);
//scrolltotopeachtime
*resetheaderview'
sheight.
privatevoidresetHeaderHeight(){
intheight=mHeaderView.getVisiableHeight();
if(height==0)//notvisible.
return;
//refreshingandheaderisn'
tshownfully.donothing.
if(mPullRefreshing&
height<
=mHeaderViewHeight){
intfinalHeight=0;
//default:
scrollbacktodismissheader.
//isrefreshing,justscrollbacktoshowalltheheader.
height>
finalHeight=mHeaderViewHeight;
mScrollBack=SCROLLBACK_HEADER;
mScroller.startScroll(0,height,0,finalHeight-height,
SCROLL_DURATION);
//triggercomputeScroll
invalidate();
privatevoidupdateFooterHeight(floatdelta){
intheight=mFooterView.getBottomMargin()+(int)delta;
if(mEnablePullLoad&
mPullLoading){
if(height>
PULL_LOAD_MORE_DELTA){//heightenoughtoinvokeload
//more.
mFooterView.setState(XListViewFooter.STATE_READY);
mFooterView.setBottomMargin(height);
//setSelection(mTotalItemCount-1);
//scrolltobottom
privatevoidresetFooterHeight(){
intbottomMargin=mFooterView.getBottomMargin();
if(bottomMargin>
0){
mScrollBack=SCROLLBACK_FOOTER;
mScroller.startScroll(0,bottomMargin,0,-bottomMargin,
publicvoidstartLoadMore(){
mPullLoading=true;
mFooterView.setState(XListViewFooter.STATE_LOADING);
if(mListViewListener!
=null){
mListViewListener.onLoadMore(id);
mFooterView.setEnabled(false);
HandlermHandler=newHandler(){
publicvoidhandleMessage(Messagemsg){
super.handleMessage(msg);
XListView.this.stopLoadMore();
};
mHandler.sendEmptyMessageDelayed(0,4000);
publicbooleanonTouchEvent(MotionEventev){
if(mLastY==-1){
mLastY=ev.getRawY();
switch(ev.getAction()){
caseMotionEvent.ACTION_DOWN:
break;
caseMotionEvent.ACTION_MOVE:
finalfloatdeltaY=ev.getRawY()-mLastY;
if(getFirstVisiblePosition()==0
&
(mHeaderView.getVisiableHeight()>
0||deltaY>
0)){
//thefirstitemisshowing,headerhasshownorpulldown.
updateHeaderHeight(deltaY/OFFSET_RADIO);
invokeOnScrolling();
}elseif(getLastVisiblePosition()==mTotalItemCount-1
(mFooterView.getBottomMargin()>
0||deltaY<
//lastitem,alreadypulleduporwanttopullup.
updateFooterHeight(-deltaY/OFFSET_RADIO);
default:
mLastY=-1;
//reset
if(getFirstVisiblePosition()==0){
//invokerefresh
if(mEnablePullRefresh
mHeaderView.getVisiableHeight()>
mPullRefreshing=true;
mHeaderView.setState(XListViewHeader.STATE_REFRESHING);
mListViewListener.onRefresh(id);
XListView.this.stopRefresh();
}elseif(getLastVisiblePosition()==mTotalItemCount-1){
//invokeloadmore.
if(mEnablePullLoad
mFooterView.getBottomMargin()>
PULL_LOAD_MORE_DELTA){
if(mFooterView.isEnabled()){
resetFooterHeight();
returnsuper.onTouchEvent(ev);
publicvoidcomputeScroll(){
if(mSputeScrollOffset()){
if(mScrollBack==SCROLLBACK_HEADER){
mHeaderView.setVisiableHeight(mScroller.getCurrY());
mFooterView.setBottomMargin(mScroller.getCurrY());
postInvalidate();
puteScroll();
publicvoidsetOnScrollListener(OnScrollListenerl){
mScrollListener=l;
publicvoidonScrollStateChanged(AbsListViewview,intscrollState){
if(mScrollListener!
mScrollListener.onScrollStateChang
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业互联网服务培训资料doc 60页完美优质版 企业 互联网 服务 培训资料 doc 60 完美 优质