且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

片段内的android webview中的“后退"按钮

更新时间: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());