最近看了几款应用的加载进度都是这种风格,感觉还不错,在网上找了一些资料,自己小练兵了一把:
主要运用的开源框架:
/ViewPagerIndicator_library 主要就是标签页切换指示器
/ptr-lib进度条下载地址:https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh
<强>一、使用方法
强>
布局文件
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; LinearLayout xmlns: android=" http://schemas.android.com/apk/res/android " android: layout_width=" match_parent " android: layout_height=" match_parent " android:背景=" @color/bg_color” 面向android:=按怪薄北? & lt; in.srain.cube.views.ptr.PtrFrameLayout xmlns: cube_ptr=" http://schemas.android.com/apk/res-auto " android: id=癅 + id/material_style_ptr_frame” android: layout_width=" match_parent " android: layout_height=" match_parent " cube_ptr: ptr_duration_to_close=" 100 " cube_ptr: ptr_duration_to_close_header=" 100 " cube_ptr: ptr_keep_header_when_refresh=" true " cube_ptr: ptr_pull_to_fresh=" false " cube_ptr: ptr_ratio_of_header_height_to_refresh=" 1.2 " cube_ptr: ptr_resistance=" 1.7 "比; & lt;列表视图 android: id=癅 + id/article_listview” android: layout_width=" match_parent " android: layout_height=" match_parent " android: cacheColorHint=" # 00000000 " android:分频器=" @color/线” android: dividerHeight=" 10 dp/比; & lt;/in.srain.cube.views.ptr.PtrFrameLayout> & lt;/LinearLayout>
在java代码中进行控件声明,设置相关参数
mPtrFrameLayout=(PtrFrameLayout) mRootView.findViewById (R.id.material_style_ptr_frame);//头 最后MaterialHeader头=new MaterialHeader (getActivity ()); int[]颜色=getresource () .getIntArray (R.array.google_colors); header.setColorSchemeColors(颜色); 头。setLayoutParams(新PtrFrameLayout。LayoutParams (1、2)); 头。setPadding (0, Utils.dip2px (getActivity (), 15), 0, Utils.dip2px (getActivity (), 10)); header.setPtrFrameLayout (mPtrFrameLayout); mPtrFrameLayout.setPinContent(真正的); mPtrFrameLayout.setLoadingMinTime (100); mPtrFrameLayout.setDurationToCloseHeader (100); mPtrFrameLayout.setHeaderView(头); mPtrFrameLayout.addPtrUIHandler(头); mPtrFrameLayout。setPtrHandler(新PtrHandler () { @Override 公共布尔checkCanDoRefresh (PtrFrameLayout帧,查看内容,查看标题){ PtrDefaultHandler返回。checkContentCanBePulledDown(框架、article_listview头); } @Override 公共空间> moreView=Finder.inflate (getActivity (), R.layout.loading_more_footer); moreView.setVisibility (View.GONE); article_listview=(视图)mRootView.findViewById (R.id.article_listview); article_listview.addFooterView (moreView); 适配器=new ArticleListAdapter (getActivity ()); article_listview.setAdapter(适配器); article_listview。setOnItemClickListener(新OnItemClickListener () { @Override 公共空间onItemClick (AdapterView<& # 63;比;父,查看视图, int位置,长id) { 篇文章=(文章)adapter.getItem(位置); 目的意图=new意图(getActivity (), AppBrowserActivity.class); 意图。putExtra (“w_url article.getUrl ()); 意图。putExtra (“share_desc article.getTitle ()); 意图。putExtra (“share_pic article.getPicUrl ()); startActivity(意图); } }); article_listview。setOnScrollListener(新OnScrollListener () { @Override 公共空间onScrollStateChanged (AbsListView看来,int scrollState) {//当不滚动时 如果(scrollState==OnScrollListener.SCROLL_STATE_IDLE) {//判断是否滚动到底部 如果(view.getLastVisiblePosition ()==view.getCount () - 1) {//加载更多功能的代码 moreView.setVisibility (View.VISIBLE); pageNum + +; doRequest (pageNum假); } } } @Override 公共空间onScroll (AbsListView视图,int firstVisibleItem int visibleItemCount int totalItemCount) {//TODO自动生成方法存根 } });>之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Android材料加载进度条制作代码