| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- package com.unis.sxzcl.ui.home;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import android.widget.TextView;
- import androidx.fragment.app.Fragment;
- import androidx.viewpager.widget.ViewPager;
- import com.unis.model.DataCallback;
- import com.unis.model.VersionModel;
- import com.unis.model.bean.VersionBean;
- import com.unis.sxzcl.base.BaseFragment;
- import com.unis.sxzcl.databinding.FragmentMainBinding;
- import com.unis.sxzcl.ui.work_module.WorkModuleFragment;
- import com.unis.sxzcl.widget.MyFragmentStatePagerAdapter;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 包名: com.unis.sxzcl.ui.home
- * 类名: MainFragment
- * 作用描述:
- * 创建人: mQ
- * 创建时间: 2020/12/8 17:34
- * 更新人:
- * 更新时间: 2020/12/8 17:34
- * 更新说明:
- * 版本号: 1.0
- */
- public class MainFragment extends BaseFragment<FragmentMainBinding> {
- private List<Fragment> mFragmentList = new ArrayList<>();
- private ImageView[] mTabImageViews;
- private TextView[] mTabTextViews;
- private boolean[] mTabTopWhite;
- private int indexFlag = -1;//tab选中标记
- @Override
- protected FragmentMainBinding getViewBinding(LayoutInflater inflater, ViewGroup container) {
- return FragmentMainBinding.inflate(inflater, container, false);
- }
- @Override
- protected void init() {
- //初始化tab控件
- initTab();
- //初始化Fragment
- initFragment();
- //初始化ViewPager
- initViewPager();
- }
- /**
- * 初始化ViewPager
- */
- private void initViewPager() {
- //创建适配器
- MyFragmentStatePagerAdapter adapter = new MyFragmentStatePagerAdapter(getChildFragmentManager(), mFragmentList);
- mBinding.viewPager.setAdapter(adapter);
- //设置页面留存数
- mBinding.viewPager.setOffscreenPageLimit(mFragmentList.size() + 1);
- //监听翻页事件
- mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- }
- @Override
- public void onPageSelected(int position) {
- updateTab(position);
- }
- @Override
- public void onPageScrollStateChanged(int state) {
- }
- });
- }
- /**
- * 初始化Fragment
- */
- private void initFragment() {
- mFragmentList.add(new HomeFragment());
- mFragmentList.add(WorkModuleFragment.newFragment(true, ""));
- }
- /**
- * 初始化导航控件
- */
- private void initTab() {
- //给布局添加索引
- mBinding.layoutHome.setTag(0);
- mBinding.layoutWork.setTag(1);
- //监听点击事件
- mBinding.layoutHome.setOnClickListener(tabClickListener);
- mBinding.layoutWork.setOnClickListener(tabClickListener);
- //图片控件 按顺序初始化数组
- mTabImageViews = new ImageView[]{
- mBinding.ivHome,
- mBinding.ivWork,
- };
- //文字控件 按顺序初始化数组
- mTabTextViews = new TextView[]{
- mBinding.tvHome,
- mBinding.tvWork,
- };
- //顶部状态栏文字是否为白色 按顺序初始化数组
- mTabTopWhite = new boolean[]{
- true,
- true,
- };
- }
- @Override
- protected void onFirstShow() {
- updateTab(0);//默认选中第一个tab
- // try {
- // Beta.checkUpgrade(false, true);
- // } catch (Exception e) {
- // }
- getVersion();
- }
- /**
- * 获取版本更新
- */
- private void getVersion() {
- VersionModel.get().getVersionInfo(new DataCallback<List<VersionBean>>() {
- @Override
- public void onSuccess(List<VersionBean> data) {
- if (!isActive()) return;
- // VersionBean bean = data.get(0);
- // long versionCode = VersionTool.getVersionCode(getContext());
- // LogTool.i("本地版本:" + versionCode + " 线上版本:" + bean.getVersionCode());
- // if (versionCode < bean.getVersionCode()) {
- // // 有新版本更新
- // new VersionDialog(getContext())
- // .setContent(bean.getContent())
- // .setVersionName(bean.getVersionName())
- // .show();
- // }
- }
- });
- }
- View.OnClickListener tabClickListener = v -> {
- int index = (int) v.getTag();
- updateTab(index);
- };
- /**
- * 更新导航栏选项
- *
- * @param index 选中索引
- */
- private void updateTab(int index) {
- if (indexFlag == index)
- return;
- if (indexFlag != -1) {
- //上次选择置为默认
- mTabImageViews[indexFlag].setSelected(false);
- mTabTextViews[indexFlag].setEnabled(true);
- }
- //当前选择置为选中
- mTabImageViews[index].setSelected(true);
- mTabTextViews[index].setEnabled(false);
- if (mBinding.viewPager.getCurrentItem() != index) {
- mBinding.viewPager.setCurrentItem(index, false);
- }
- //设置状态栏颜色
- setStatusBarWhite(mTabTopWhite[index]);
- //保存索引为当前选择
- indexFlag = index;
- }
- }
|