我使用底部导航栏创建了一个活动。 我搜索了很多关于它的事情,但现在我不知道如何处理这个问题。 在此之前,我刚刚在用户点击底部导航时启动了另一项活动,但我认为它并不好。
如何在标签之间切换? 我必须使用片段吗?那么' setContentView(int layoutResID)&#39 ;?我怎样才能做到这一点?我很困惑......
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
return true;
case R.id.navigation_dashboard:
startActivity(dashboardActivity);
return true;
case R.id.navigation_notifications:
startActivity(dashboardActivity);
return true;
}
return false;
}
};
非常感谢你的帮助 - 我希望你理解我的意思。
答案 0 :(得分:2)
活动转换总是很昂贵,我们应该只在切换上下文时从一个活动切换到另一个活动。 fragment
是活动中UI的一部分。相同的片段可以与多个活动一起使用。就像活动一样,片段有自己的生命周期,setContentView(int layoutResID)
可以设置为OnCreate
片段中的不同布局。
此link详细说明了何时使用活动或片段。
底部导航视图中的答案 1 :(得分:1)
请参阅: -
https://github.com/waleedsarwar86/BottomNavigationDemo
并在
中完成解释http://waleedsarwar.com/posts/2016-05-21-three-tabs-bottom-navigation/
您将获得一个正在运行的代码,其中包含解释。
答案 2 :(得分:1)
底部导航视图是Android库中引入的导航栏,只需轻按一下即可轻松切换视图。它虽然可以用于几乎任何目的,但最常用于通过单击在片段之间切换。它用于开放活动有点荒谬,因为它忽略了只需轻轻一点切换视图的最重要功能。在这方面有很多好的文章和博客,其中之一是: https://medium.com/@hitherejoe/exploring-the-android-design-support-library-bottom-navigation-drawer-548de699e8e0 希望这能解决你的疑问..
答案 3 :(得分:1)
bottomNavigationView.setOnNavigationItemSelectedListener
(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.action_item1:
selectedFragment = ItemOneFragment.newInstance();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_layout, selectedFragment);
transaction.commit();
// selectedFragment.getChildFragmentManager().beginTransaction();
break;
case R.id.action_item2:
selectedFragment = ItemTwoFragment.newInstance();
FragmentTransaction transactiona = getSupportFragmentManager().beginTransaction();
transactiona.replace(R.id.frame_layout, selectedFragment);
transactiona.commit();
// selectedFragment = ItemThreeFragment.newInstance();
break;
case R.id.action_item3:
// selectedFragment = ItemOneFragment.newInstance();
Intent intent=new Intent(MainView.this, YoutActivityLive.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
// selectedFragment = ItemTwoFragment.newInstance();
break;
case R.id.action_item5:
selectedFragment = ItemOneFragment.newInstance();
FragmentTransaction transactionb = getSupportFragmentManager().beginTransaction();
transactionb.replace(R.id.frame_layout, selectedFragment);
transactionb.commit();
// selectedFragment = ItemFiveFragment.newInstance();
break;
}
return true;
}
});