我有一个 Activity
,它有 ViewPager
,其中包含一个 WebView
,它有 Text
和 Video
。当我播放视频并按下后退时,音频仍在播放。然后我做了
@Override
public void onPause() {
super.onPause();
if(webView != null) {
webView.onPause();
}
}
@Override
public void onResume() {
super.onResume();
if (webView != null) {
webView.onResume();
}
}
但是当我在 ViewPager
中滑动到下一个时,新的 url
正在加载到 WebView
中,但音频仍在播放上一个 Web View
。有谁知道这个问题的解决方案吗?
编辑:
解决方案
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (webView != null) {
if (isVisibleToUser) {
webView.reload();
} else {
webView.onPause();
}
}
}
最佳答案
fragment 的 onPause() 不会被调用,因为 fragment 不会在 View 分页器中被销毁/暂停(除非它超出屏幕外限制)。因此您必须检查 fragment 是否可见。
您可以这样做:
public class MyFragment extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//visible to user }
else {
//not visible
}
}
}
然后用你的 webview 执行你想要的任何操作。
关于android - 在 ViewPager 中带有视频的 WebView 即使在水平滚动后也会继续播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509235/