我们正在开发一个安卓应用程序,在该应用程序中,防止MediaController的VideoView可见是至关重要的。这是通过重写hide()来实现的。
mediaController = new MediaController(getContext(), false){
@Override
public void hide() {
//Do not hide MediaController
if (videoView.getVisibility() == VISIBLE){
return;
}
//Hide only if VideoView is not visible anymore
super.hide();
}
};VideoView是片段的一部分,如果删除该片段并出现下一个片段,则MediaController仍然是可见的,但无法访问。我们尝试了不同的解决方案,以确保在删除super.hide()时调用VideoView,但没有成功。上面的那个不起作用。我们还将if语句更改为:
if (videoView.isShown())if (videoView.isActivated())我们甚至尝试手动对片段的setVisibility(View.GONE)中的MediaController进行onDetach()。
一旦片段被分离,我们如何正确地隐藏MediaController?
发布于 2018-12-06 14:08:12
我们终于找到了解决这个问题的办法。
覆盖hide()
@Override
public void hide() {
//Do not hide MediaController
if (videoView.isShown()){
return;
}
super.hide();
}在onDetach()中,在super.onDetach()之后手动调用hide()
@Override
public void onDetach() {
super.onDetach();
mediaController.hide();
}在MediaController可见的期间,VideoView现在将永久可见。一旦VideoView消失,MediaController也会消失。
https://stackoverflow.com/questions/53650384
复制相似问题