繁体   English   中英

Android 活动中的底部导航栏

[英]Android Bottom Navigation Bar in activities

我正在开发一个汽车租赁应用程序,现在我的应用程序中有 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;
    }
};
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM