From f7d36b0f2c254a048905ae27c9e421427eb0f2c8 Mon Sep 17 00:00:00 2001 From: Administrator <123> Date: Thu, 04 Nov 2021 02:04:19 +0000 Subject: [PATCH] tablayout 框架 分页加载框架 --- app/src/main/java/com/duqing/missions/MainActivity.java | 54 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 36 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/duqing/missions/MainActivity.java b/app/src/main/java/com/duqing/missions/MainActivity.java index 6c2f39a..09a3b32 100644 --- a/app/src/main/java/com/duqing/missions/MainActivity.java +++ b/app/src/main/java/com/duqing/missions/MainActivity.java @@ -1,30 +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.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); - - // 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);//设置默认第 } + } \ No newline at end of file -- Gitblit v1.9.1