当按下后退按钮时,我的WebView正在加载上一页,而不会覆盖 onBackPressed()方法。我想知道如何防止这种行为,因为App的设计并不需要它。后退按钮应该只做它一直做的事情,导航片段/活动,而不是WebView本身。
webView = (WebView) getView().findViewById(R.id.webView);
webView.setWebViewClient(new InternalWebClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
问候。
答案 0 :(得分:0)
好的,够简单......
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
MyActivity.this.finish(); // or getActivity().finish() when in Fragment
}
return false;
}
});
答案 1 :(得分:0)
以下是在Webview中启用后退按钮的最佳方法。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
else
{
finish();
}
return super.onKeyDown(keyCode, event);
}