代码拉取完成,页面将自动刷新
徒步大会Android客户端
###JAVA代码
结构 MVP , 网络请求 Retrofit+RxJava
参考:
Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架
【Android】RxJava + Retrofit完成网络请求
Retrofit拦截器,参数拦截并加签,参考:
ButterKnife 注解
// Activity 中,要在setContentView后调用
ButterKnife.bind(this);
// Fragment 中,要在OnViewCreate中调用
ButterKnife.bind(this, view);
// 效果等同findViewById
@BindView(R.id.imageview)
ImageView imageView;
RefreshLayout 下拉刷新上拉加载
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshLayout.setRefreshing(false);
}
});
refreshLayout.setOnLoadListener(new RefreshLayout.OnLoadListener() {
@Override
public void onLoad() {
refreshLayout.setLoading(false);
}
});
ImmersionBar 沉浸式布局
ImmersionBar 集成ImmersionBar实现沉浸式布局
ProgressLoadingView 加载圈
/**
* 显示加载圈
*/
public void showLoading() {
if (loading == null) {
loading = new ProgressLoadingView(this, R.style.CustomDialog);
}
loading.show();
}
/**
* 隐藏加载圈
*/
public void dismissLoading() {
if (loading != null) {
loading.dismiss();
}
}
SwipeBackActivity 侧滑返回
只需要继承SwipeBackActivity
就可以
Tablayout 切换控件,配合viewpage+fragment
// 设置标题和fragment
titleList.add("tab1");
titleList.add("tab2");
viewList.add(new PlayFragment());
viewList.add(new MyFragment());
// 设置适配器
MyPagerAdapter adapter = new MyPagerAdapter(getFragmentManager());
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);//将TabLayout和ViewPager关联起来。
tabLayout.setTabsFromPagerAdapter(adapter);//给Tabs设置适配器
//ViewPager适配器
class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return viewList.size();//页卡数
}
@Override
public Fragment getItem(int position) {
return viewList.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);//页卡标题
}
}
PhotoView 查看大图,支持缩放的view
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。