Administrator
2021-11-04 f7d36b0f2c254a048905ae27c9e421427eb0f2c8
app/src/main/java/com/duqing/missions/MainActivity.java
@@ -1,32 +1,48 @@
package com.duqing.missions;
import android.os.Bundle;
import androidx.viewpager2.widget.ViewPager2;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.duqing.missions.base.BaseActivity;
import com.duqing.missions.base.FragmentAdapter;
import com.duqing.missions.base.activities.BaseActivity;
import com.duqing.missions.databinding.ActivityMainBinding;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.duqing.missions.ui.main.hall.HallFragment;
import com.duqing.missions.ui.main.home.HomeFragment;
import com.duqing.missions.ui.main.mine.MineFragment;
public class MainActivity extends BaseActivity<ActivityMainBinding> {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BottomNavigationView navView = binding.navView;
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
        NavigationUI.setupWithNavController(binding.navView, navController);
    public void initViews() {
        setStatusBarBgColor(R.color.red);
        setStatusBarTextColor(false);
        binding.navView.setOnItemSelectedListener(item -> {
            for(int i = 0 ; i < binding.navView.getMenu().size() ; i ++){
                if(item.getItemId() == binding.navView.getMenu().getItem(i).getItemId()){
                    binding.viewPager2.setCurrentItem(i);
                    return true;
                }
            }
            return false;
        });
        final FragmentAdapter fragmentAdapter = new FragmentAdapter(this);
        fragmentAdapter.addFragment(new HomeFragment());
        fragmentAdapter.addFragment(new HallFragment());
        fragmentAdapter.addFragment(new MineFragment());
        //设置当前可见Item左右可见page数,次范围内不会被销毁
        //禁用预加载
        binding.viewPager2.setOffscreenPageLimit(ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT);
        binding.viewPager2.setAdapter(fragmentAdapter);
        binding.viewPager2.setCurrentItem(0);
        binding.viewPager2.setUserInputEnabled(false); //true:滑动,false:禁止滑动
        binding.viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageSelected(int position) {
                binding.navView.getMenu().getItem(position).setChecked(true);
            }
        });
        binding.viewPager2.setCurrentItem(0);//设置默认第
    }
}