更新时间:2023-01-10 11:50:56
您可以重写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());