如何解决使用带有底部导航的 Android 导航组件时检测选项卡更改
我目前有一个应用程序 (Java),它使用带有底部导航的导航组件。每个标签都有一个片段。
其中一个片段导航到具有音频播放器(使用媒体播放器)的辅助片段。这个奥迪片段有以下代码,当我回到父片段时停止音频:
@Override
public void onDestroy() {
super.onDestroy();
if (mp != null) {
mp.pause();
mp = null;
}
}
问题是,当音频正在播放时,我点击底部导航中的不同选项卡,音频会继续播放。我想到了使用以下内容:
@Override
public void onStop() {
super.onStop();
if (mp != null) {
mp.pause();
mp = null;
}
}
这解决了问题,但也阻止了在屏幕关闭时播放音频。 (当 onStop 不存在时,这不会发生)。
这个想法是在用户点击任何底部导航选项卡时执行 pause() 函数。
以我目前的结构,当用户点击底部选项卡时,如何让声音停止?
解决方法
您可以使用“setOnNavigationItemSelectedListener()”来监听底部导航的点击。
如果用户选择了音频播放器内的项目以外的项目,则调用 stopAudioPlayer 函数
示例:-
navBottom.setOnNavigationItemSelectedListener(item -> {
if (item.getItemId() != R.id.nav_bottom_audio_player)
stopAudioPlayer();
return true;
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。