【问题标题】:Correct Activity/Fragment Architecture for Android Bottom Navigation ViewAndroid 底部导航视图的正确 Activity/Fragment 架构
【发布时间】:2017-10-04 14:28:18
【问题描述】:

我想就在使用 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` 或 `SignUpActivity`

在遇到许多错误后,我研究了如何构建我的应用程序,但我发现结果好坏参半。有谁知道使用BottomNavigationViewFragments 的正确方法,在那些fragments 中我可以加载更多Activities/fragments。非常感谢。

【问题讨论】:

    标签: android android-fragments bottomnavigationview


    【解决方案1】:

    每种方法都取决于项目以及您假装要实现的目标。我必须编写一个底部导航应用程序,它可以与 20 多个底部导航布局一起使用,这意味着一个单一的活动。您希望实现的过程与在所选选项卡上的所需选项卡中设置所需片段几乎相同,不同之处在于,您将点击片段内的按钮,而不是点击选项卡,您将替换该按钮使用新的所需片段。

    点击选项卡->替换片段->在片段内单击按钮->替换片段->等等。

    由于您使用的是替换,因此您必须小心处理您的onBackPress 事件,因为我假设每次后按您都希望返回到前一个片段。我自己,我已经在 Main Activity 中实现了一个接口,用于侦听 onBackPress 上的可见片段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多