从片段切换时滞后

时间:2021-04-02 13:56:16

标签: android android-fragments android-recyclerview android-viewpager

我有一个包含 4 个片段的 main_activity,我可以使用底部菜单在它们之间切换。

  • 第一个片段是空白的
  • 第二个片段包含一个 recyclerview
  • 第三个片段在 viewpager 中包含一个回收器视图
  • 第四个片段是空白的

当我打开应用程序并从第一个片段切换到第二个片段或从第二个片段切换到第三个时滞后

public class MainActivity extends AppCompatActivity {

FragmentManager fragmentManager;
AnimatedBottomBar animatedBottomBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    animatedBottomBar=findViewById(R.id.animatedBottomBar);


    if (savedInstanceState == null) {
        animatedBottomBar.selectTabById(R.id.home, true);
        fragmentManager = getSupportFragmentManager();
        HomeFragment homeFragment = new HomeFragment();
        fragmentManager.beginTransaction().replace(R.id.fragment_container, homeFragment)
                .commit();
    }

    animatedBottomBar.setOnTabSelectListener(new AnimatedBottomBar.OnTabSelectListener() {
        @Override
        public void onTabReselected(int i, @NotNull AnimatedBottomBar.Tab tab) {

        }

        @Override
        public void onTabSelected(int lastIndex, @Nullable AnimatedBottomBar.Tab lastTab, int newIndex, @NotNull AnimatedBottomBar.Tab newTab) {
            Fragment fragment = null;
            switch (newTab.getId()) {
                case R.id.home:
                    fragment = new HomeFragment();
                    break;
                case R.id.events:
                    fragment = new EventsFragment();
                    break;
                case R.id.members:
                    fragment = new MembersFragment();
                    break;
                case R.id.settings:
                    fragment = new SettingsFragment();
                    break;
            }

            if (fragment != null) {
                fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.fragment_container, fragment)
                        .commit();
            } else {
                Log.e(TAG, "Error in creating Fragment");
            }
        }
    });

}

0 个答案:

没有答案