【问题标题】:Opening of first option navigation bar as soon as application starts java应用程序启动java时打开第一个选项导航栏
【发布时间】:2020-05-29 07:43:14
【问题描述】:

我正在制作一个 android 项目,我是一个使用带有活动的底部导航栏。当我点击导航栏按钮时它工作得非常好,但是当我启动应用程序时它只显示一个导航栏。我想要第一个导航栏选项应该会在我启动应用程序后立即显示,但它没有发生。请帮我解决这个问题。

【问题讨论】:

    标签: java android android-studio oncreate android-bottomnav


    【解决方案1】:

    如果在底部导航栏使用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();
    

    【讨论】:

    • 没有先生在这种情况下使用活动,但我非常感谢您的工作。如果您能帮助我,我将非常感谢您。
    • 我认为使用没有片段的底部导航栏会变得很复杂。但既然你说其他按钮和活动都在工作,那么请给我看代码,我会尽力帮助你
    猜你喜欢
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多