Banner+FlycoTabLayout+pulltorefresh
依赖
implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar
implementation ‘com.youth.banner:banner:1.4.10’ ’
banner
public class MainActivity extends AppCompatActivity {
Banner banner;
//图片集合
List<String> lists=new ArrayList<>();
//标题集合
List<String> titles=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
banner=findViewById(R.id.banner);
OkGo.<String>get("http://vueshop.glbuys.com/api/home/index/slide?token=1ec949a15fb709370f")
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
List<Bean.DataBean> data = new Gson().fromJson(response.body(), Bean.class).getData();
for (int i = 0; i < data.size(); i++) {
lists.add("http:"+data.get(i).getImage());
titles.add(data.get(i).getTitle());
}
banner.setImages(lists);
banner.setBannerTitles(titles);
banner.start();
}
});
//样式
banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);
//轮播时间
// banner.setDelayTime(1000);
//自动轮播
banner.isAutoPlay(true);
//图片加载器
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
//path 图片路径 imageview 显示图片控件
Glide.with(MainActivity.this).load(path).into(imageView);
}
});
}
}
FlycoTabLayout
public class MainActivity extends AppCompatActivity {
CommonTabLayout commonTabLayout;
ArrayList<CustomTabEntity> lists=new ArrayList<>();
Fragment fragment1,fragment2,fragment3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
//tablayout样式
lists.add(new MyCustom("消息",R.mipmap.a,R.mipmap.b));
lists.add(new MyCustom("我的",R.mipmap.a,R.mipmap.b));
lists.add(new MyCustom("提醒",R.mipmap.a,R.mipmap.b));
commonTabLayout.setTabData(lists);
commonTabLayout.setOnTabSelectListener(new OnTabSelectListener() {
//选中
@Override
public void onTabSelect(int position) {
if (position==0) {
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragment1).commit();
}else if (position==1) {
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragment2).commit();
}else if (position==2) {
getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragment3).commit();
}
}
//第二次选中
@Override
public void onTabReselect(int position) {
}
});
}
private void init() {
commonTabLayout=findViewById(R.id.tablayout);
fragment1=new MyFragment1();
fragment2=new MyFragment2();
fragment3=new MyFragment3();
}
}
自定义类:
public class MyCustom implements CustomTabEntity {
String title;
int selecticon;
int unselecticon;
public MyCustom(String title, int selecticon, int unselecticon) {
this.title = title;
this.selecticon = selecticon;
this.unselecticon = unselecticon;
}
//标题
@Override
public String getTabTitle() {
return title;
}
//选中的图片
@Override
public int getTabSelectedIcon() {
return selecticon;
}
//未选中的图片
@Override
public int getTabUnselectedIcon() {
return unselecticon;
}
}
布局文件:
选中和未选中的字体颜色(默认为白色):
app:tl_textSelectColor="#000"
app:tl_textUnselectColor="#FF5722"
pulltorefresh
public class MyFragment1 extends Fragment {
View view;
PullToRefreshListView pullToRefreshListView;
List<Bean.DataBean> lists=new ArrayList<>();
List<String> images=new ArrayList<>();
Banner banner;
View foot;
MyAdapter myAdapter;
String path="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=";
int page=2;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = getLayoutInflater().inflate(R.layout.layout_item1, null);
init();
setData();
setBanner();
setFoot();
//both表示双方
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
lists.clear();
page=1;
setData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
setData();
}
});
return view;
}
//添加尾视图
private void setFoot() {
foot = LayoutInflater.from(getContext()).inflate(R.layout.layout_footer, null);
pullToRefreshListView.getRefreshableView().addFooterView(foot);
}
//添加头视图
private void setBanner() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.layout_header, null);
banner = view.findViewById(R.id.header_banner);
OkGo.<String>get("http://vueshop.glbuys.com/api/home/index/slide?token=1ec949a15fb709370f")
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
List<Bean1.DataBean> data; data = new Gson().fromJson(response.body(), Bean1.class).getData();
for (int i = 0; i < data.size(); i++) {
String image = data.get(i).getImage();
images.add("http:"+image);
}
banner.setImages(images);
banner.start();
}
});
//样式
banner.setBannerStyle(BannerConfig.NUM_INDICATOR);
banner.isAutoPlay(true);//自动轮播
//图片加载器
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(getContext()).load((String) path).into(imageView);
}
});
pullToRefreshListView.getRefreshableView().addHeaderView(view);
}
//请求数据
private void setData() {
OkGo.<String>get(path+page).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
List<Bean.DataBean> data = new Gson().fromJson(response.body(), Bean.class).getData();
lists.addAll(data);
myAdapter.notifyDataSetChanged();
pullToRefreshListView.onRefreshComplete();
}
});
}
private void init() {
pullToRefreshListView=view.findViewById(R.id.pubblistview);
myAdapter=new MyAdapter(lists,getContext());
pullToRefreshListView.setAdapter(myAdapter);
}
}