【发布时间】:2020-05-29 07:43:14
【问题描述】:
我正在制作一个 android 项目,我是一个使用带有活动的底部导航栏。当我点击导航栏按钮时它工作得非常好,但是当我启动应用程序时它只显示一个导航栏。我想要第一个导航栏选项应该会在我启动应用程序后立即显示,但它没有发生。请帮我解决这个问题。
【问题讨论】:
标签: java android android-studio oncreate android-bottomnav
我正在制作一个 android 项目,我是一个使用带有活动的底部导航栏。当我点击导航栏按钮时它工作得非常好,但是当我启动应用程序时它只显示一个导航栏。我想要第一个导航栏选项应该会在我启动应用程序后立即显示,但它没有发生。请帮我解决这个问题。
【问题讨论】:
标签: java android android-studio oncreate android-bottomnav
如果在底部导航栏使用fragment实例化,只需要在onCreate方法中实例化fragment,使用底部导航栏监听器来处理点击监听即可。
在这个演示中,我有一个导航栏,它正在使用侦听器进行初始化,然后在 onCreate 中实例化片段以在片段创建时显示。
public class MainActivity extends AppCompatActivity {
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation_bar);
bottomNav.setOnNavigationItemSelectedListener(navListener);
viewPager = findViewById(R.id.view_pager);
PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() {@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.home_nav:
selectedFragment = new HomeFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
break;
case R.id.explore_nav:
selectedFragment = new ExploreFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
break;
}
return true;
}
};
selectedFragment = new HomeFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
【讨论】: