在导航到下一个片段时在底部导航视图中打开警报对话框

Posted

技术标签:

【中文标题】在导航到下一个片段时在底部导航视图中打开警报对话框【英文标题】:Open alert dialog in Bottom Navigation View while navigation to next fragment 【发布时间】:2020-06-04 10:29:53 【问题描述】:

我的活动中有一个 BottomNavigationView,我有五个片段,并且我使用了 Navigation Jetpack 组件。

每次我通过单击底部导航视图项移动到下一个片段时,我都必须要求一个确认对话框(如果我必须从这个屏幕导航是/否)。如果是,我可以移动到下一个屏幕,否则我必须关闭对话框并继续。

我有更好的 Navigation Jetpack 组件本身来处理这种情况。

我没有得到任何清晰的图片

【问题讨论】:

【参考方案1】:

当您选择BottomNavigationView 项时,您应该使用此代码; 第一步,在onCreate中定义BottomNavigationView。

    mBtmView = (BottomNavigationView) findViewById(R.id.bottomView);
    mBtmView.setOnNavigationItemSelectedListener(this);

第二步;

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) 

    mMenuId = item.getItemId();

    switch (item.getItemId()) 
        case R.id.action_food: 
//Show dialog to there. if reject swipe from your dialog, use setCurrentItem. 
        
        break;
        case R.id.action_medical: 
//Show dialog to there. if reject swipe from your dialog, use setCurrentItem. 

        
        break;
        case R.id.action_yoga: 
//Show dialog to there. if reject swipe from your dialog, use setCurrentItem. 

        
        break;
        case R.id.action_postures: 
//Show dialog to there. if reject swipe from your dialog, use setCurrentItem. 

        
        break;
    
    return true;

【讨论】:

我认为这个答案是正确的 检查一下,如果有效,如果您同意我的回答,我会很高兴。 这是常用的方法。 普通方法可以正常使用。由于我们使用的是导航 JetPack 组件,因此 navigation.xml 应该有一个打开对话框的选项,可以使用 <fragment/>。我们也没有使用 setOnNavigationItemSelectedListener,前提是我们使用 navController、AppBarConfiguration。是否有使用 Navigation JetPack 组件的选项。 @Murat Çakır 即使这段代码也有一些逻辑问题。

以上是关于在导航到下一个片段时在底部导航视图中打开警报对话框的主要内容,如果未能解决你的问题,请参考以下文章

滚动时在另一个片段视频视图中重叠一个片段的视频拇指

如何使用底部导航视图和 Android 导航组件将参数传递给片段?

底部导航栏的 Oncreate 视图问题

重新创建应用时,片段与底部导航视图图标不匹配

如何在android中使用底部导航视图时恢复片段状态?

如何在滚动列表视图上显示/隐藏底部导航视图?