片段内的android webview中的“后退"按钮 [英] Back button in android webview within a fragment
问题描述
我已经在一个片段中创建了一个Web视图,但是当我尝试按后退"按钮时,它杀死了该应用程序而不是返回.我想要的是当我按下后退"按钮时返回,如果我已经在主页上,则后退"按钮应该会终止该应用程序.
I have created a webview within a fragment however when I am trying to press the back button, it is killing the app instead of going back. What i want is to go back when i press the back button and if i am already on home page the back button should kill the app.
我尝试使用给定链接中的所有解决方案.
I have tried using all the solution in the given link.
请帮助.
推荐答案
您可以重写getActivity的onBackPressed()方法,并通过调用getFragmentManager().popBackStackImmediate()来检查后堆栈中是否有任何先前的片段要弹出. getSupportFragmentManager().popBackStackImmediate()如下代码:
You can override the Activity's onBackPressed() method and check if there is any previous fragment in the backstack to pop back by calling getFragmentManager().popBackStackImmediate() or getSupportFragmentManager().popBackStackImmediate() like the code below:
@Override
public void onBackPressed() {
if (!getFragmentManager().popBackStackImmediate()) {
super.onBackPressed();
}
}
在调用commit()将fragmenttransaction添加到backstack之前,请不要忘记调用.addToBackStack(null).
Don't forget to call .addToBackStack(null) before you call commit() to add the fragmenttransaction to the backstack.
如果您想按后退"按钮返回上一个网页,而用户在返回上一个片段之前已在WebView中导航,则可以执行以下操作:
And if you want to press back button to go back to previous webpage user has navigated in the WebView before go back to previous fragment, you can do this:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else if (!getFragmentManager().popBackStackImmediate()) {
super.onBackPressed();
}
}
并记住通过调用webView.setWebViewClient(new WebViewClient())来设置webView以加载WebView中的任何网页.
And remember to set your webView to load any webpage in the WebView by calling webView.setWebViewClient(new WebViewClient());
这篇关于片段内的android webview中的“后退"按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!