【问题标题】:Android Bottom Navigation Bar in activities活动中的Android底部导航栏
【发布时间】:2021-02-11 15:43:12
【问题描述】:

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

    【讨论】:

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