当前位置: 首页 > 科技观察

懒人必备-多种下拉刷新,上拉加载更多以及配置自定义头部广告位库

时间:2023-03-16 16:25:16 科技观察

懒人必备:多次下拉刷新,上拉加载更多,自定义头部广告空间库配置更多,配置自定义头部广告位。常见问题-无法显示加载更多视图。1、请使用android:layout_height="0dp"和android:layout_weight="1"2.如果在Fragment中使用BGARefreshLayout,请在onCreateView方法中使用初始化BGARefreshLayout,不要在onActivityCreated方法中初始化目前实现了四种下拉刷新效果:新浪微博下拉刷新样式(可以设置文字各种状态,可以设置整个刷新头的背景)MOOC下拉刷新样式(可以把logo和颜色设置成自己公司的风格,也可以设置整个刷新头的背景)美团拉-下拉刷新样式(可以把里面的图片和动画设置成自己的公司样式,也可以设置整个刷新头的背景)类似qq好友列表的粘性下拉刷新样式(三阶贝塞尔曲线)曲线没有调整好,启动下拉时效果不是很好,可以设置整个刷新头的背景)一个上拉加载更多效果新浪微博上拉加载更多(可以设置后退View,statustext)开发者也可以继承抽象类BGARefreshViewHolder,实现相应的抽象方法,做出各种格式的下拉刷新效果【比如实现handleScale(floatscale,intmoveYDistance)方法,实现各种下拉-向下根据比例刷新动画]上拉加载更多特效,参考BGAMoocStyleRefreshViewHolder、BGANormalRefreshViewHolder、BGAStickinessRefreshViewHolder、BGAMeiTuanRefreshViewHolder的实现效果图基本使用1.添加Gradle依赖不支持Eclipse。建议还在使用Eclipse的朋友开始切换到AndroidStudio。dependencies{compile'c??om.android.support:recyclerview-v7:latestVersion'compile'c??om.android.support:appcompat-v7:latestVersion'compile'c??n.bingoogolapple:bga-refreshlayout:latestVersion@aar'}2.布局中文件添加BGARefreshLayout注意:请使用android:layout_height="0dp"和android:layout_weight="1"3.在Activity或Fragment中配置BGARefreshLayout//让activity或者fragment实现BGARefreshLayoutDelegate接口publicclassModuleNameActivityextendsAppCompatActivityimplementsBGARefreshLayout.BGARefreshLayoutDelegate{privateBGARefreshLayoutmRefreshLayout;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_moudlename);initRefreshLayout();}privatevoidinitRefreshLayout(BGARefreshLayoutrefreshLayout){mRefreshLayout=(BGARefreshLayout)findViewById(r.id.rl_modulename_refresh);//设置BGARefreshLayout的代理mRefreshLayout.setDelegate(this);//设置下拉刷新和上拉加载更多样式参数1:应用上下文,参数2:是否有上拉loadingmoreMultifunctionalBGARefreshViewHolderrefreshViewHolder=newXXXImplRefreshViewHolder(this,true))//设置下拉刷新和上拉加载更多样式mRefreshLayout.setRefreshViewHolder(refreshViewHolder);//为了增加下拉刷新header加载更多通用性,以下是提供选项ional配置选项------------START//设置为加载更多时不显示加载更多控件//mRefreshLayout.setIsShowLoadingMoreView(false);//加载更多时设置TextrefreshViewHolder.setLoadingMoreText(loadingMoreText);//设置整个loadingmore控件的背景色资源idrefreshViewHolder.setLoadMoreBackgroundColorRes(loadMoreBackgroundColorRes);//设置整个加载更多控件的背景drawable资源idrefreshViewHolder.setLoadMoreBackgroundDrawableRes(loadMoreBackgroundDrawableRes);//设置下拉刷新控件的背景色资源idrefreshViewHolder.setRefreshViewBackgroundColorRes(refreshViewBackgroundColorRes);//设置下拉刷新控件的backgrounddrawableResourceidrefreshViewHolder.setRefreshViewBackgroundDrawableRes(refreshViewBackgroundDrawableRes);//设置自定义headerview(或不设置)参数1:自定义headerview(如广告位),参数2:上拉加载更多是availablemRefreshLayout.setCustomHeaderView(mBanner,false);//可选配置------------END}@OverridepublicvoidonBGARefreshLayoutBeginRefreshing(BGARefreshLayoutrefreshLayout){//在这里加载***数据if(mIsNetworkEnabled){//如果网络可用,加载网络数据newAsyncTask(){@OverrideprotectedVoiddoInBackground(Void...params){try{Thread.sleep(MainActivity.LOADING_DURATION);}catch(InterruptedExceptione){e.printStackTrace();}returnnull;}@OverrideprotectedvoidonPostExecute(VoidaVoid){//加载完成后下拉到在UI线程结束时刷新mRefreshLayout.endRefreshing();mDatas.addAll(0,DataEngine.loadNewData());mAdapter.setDatas(mDatas);}}.execute();}else{//网络不可用,结束下拉刷新Toast.makeText(this,"网络不可用",Toast.LENGTH_SHORT)。show();mRefreshLayout.endRefreshing();}}@OverridepublicbooleanonBGARefreshLayoutBeginLoadingMore(BGARefreshLayoutrefreshLayout){//这里加载更多数据,或者根据产品需求上拉刷新if(mIsNetworkEnabled){//如果网络可用,则加载网络异步数据并返回true以显示更多newAsyncTask(){@OverrideprotectedVoiddoInBackground(Void...params){try{Thread.sleep(MainActivity.LOADING_DURATION);}catch(InterruptedExceptione){e.printStackTrace();}returnnull;}@OverrideprotectedvoidonPostExecute(VoidaVoid){//在UI线程结束后加载更多mRefreshLayout.endLoadingMore();mAdapter.addDatas(DataEngine.loadMoreData());}}。execute();returntrue;}else{//网络不可用,返回false,不再显示Toast.makeText(this,"网络不可用",Toast.LENGTH_SHORT).show();returnfalse;}}//代码控件进入刷新状态应用场景:部分应用在activity的onStart方法中被调用,自动进入刷新状态获取***数据publicvoidbeginRefreshing(){mRefreshLayout.beginRefreshing();}//代码控制进入加载更多状态publicvoidbeginLoadingMore(){mRefreshLayout.beginLoadingMore();}}