底部导航栏Android应用程序的正确架构

时间:2017-10-03 19:32:56

标签: android android-fragments bottomnavigationview

在使用Android的底层导航视图时,我想了解一下构建应用程序架构的最佳方法。

目前,我在MainActivity中定义了BottomNavigationView。它看起来像这样。

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

        BottomNavigationView bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottom_navigation);
        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                Fragment selectedFragment = null;

                switch (item.getItemId()){
                    case R.id.action_home:
                        selectedFragment = HomeFragment.newInstance();
                        break;

                    case R.id.action_search:
                        selectedFragment = SearchFragment.newInstance();
                        break;

                    case R.id.action_message:
                        selectedFragment = MessageFragment.newInstance();
                        break;

                    case R.id.action_profile:
                        selectedFragment = ProfileFragment.newInstance();
                        break;
                }

                FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                transaction.replace(R.id.frame_layout, selectedFragment);
                transaction.commit();
                return true;
            }
        });

        //Manually displaying the first fragment - one time only
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.frame_layout, HomeFragment.newInstance());
        transaction.commit();

    }

问题是,一旦我点击一个标签,就会打开一个片段,我希望这些片段打开其他片段/活动(即:

  1. 我打开配置文件选项卡(`ProfileFragment`加载)
  2. 我点击`ProfileFragment`中的一个按钮,然后从`SignUpFragment`加载
  3. 在遇到很多错误之后,我已经研究了如何构建我的应用程序,但我发现结果好坏参半。有人知道BottomNavigationViewFragments一起使用的正确方法吗?在那些fragments我可以加载更多Activities/fragments。提前非常感谢。

0 个答案:

没有答案