活动中的Android底部导航栏

时间:2021-02-11 15:43:12

标签: android

我正在开发一个汽车租赁应用程序,现在我的应用程序中有 3 个片段(主页 - 从回收站视图中显示所有汽车,订单 - 显示用户的预订,个人资料 - 用户个人资料)。我可以从底部导航栏在这 3 个片段之间切换。

现在我为主页上的每辆车创建了 onclick 侦听器。当我点击一辆车时,它会将我发送到一个新活动“activity_car_detail.xml”,其中包含有关所选汽车的特定信息。我的问题是:如何让导航栏出现在这个 Car Detail 活动中?我应该使用片段而不是活动还是我应该怎么做?

这是包含底部导航栏的 Main Activity 的代码:

public class MainActivity extends AppCompatActivity {

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


    BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation);
    bottomNav.setOnNavigationItemSelectedListener(navListener);

    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
}

private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        Fragment selectedFragment = null;

        switch (item.getItemId()) {
            case R.id.nav_home:
                selectedFragment = new HomeFragment();
                break;
            case R.id.nav_orders:
                selectedFragment = new OrdersFragment();
                break;
            case R.id.nav_profile:
                selectedFragment = new ProfileFragment();
                break;
        }


        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();

        return true;
    }
};
}

1 个答案:

答案 0 :(得分:0)

我建议使用 Navigation 组件而不是 Fragment 事务。此外,这将解决您的问题,并将删除样板代码。阅读有关其文档 here 的更多信息。