Android canGoBack всегда ложный
У меня есть приложение для Android, в котором я пытаюсь отобразить несколько пользовательских кнопок "назад" / "вперед" в заголовке, чтобы пользователь знал, что он может идти вперед или назад. Моя идея состояла в том, чтобы переключить непрозрачность и установить, включены ли они, если пользователь может вернуться назад или вперед в WebView.
Внутри моего фрагмента метод OnCreateView:
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.web_view_fragment, container, false);
Toolbar toolbar = (Toolbar) v.findViewById(R.id.webview_toolbar);
TextView titleText = (TextView) toolbar.findViewById(R.id.webTitle);
titleText.setText("SBN Viewer");
webView = (WebView) v.findViewById(R.id.webview);
setOnClickListeners(toolbar);
this.toolbar = toolbar;
WebViewClient webclient = new MyWebViewClient(toolbar, getActivity());
webView.setWebViewClient(webclient);
return v;
}
И важной частью MyWebViewClient() является:
@Override
public void onPageFinished(WebView view, String url) {
LogHelper.d(this.getClass().getSimpleName(), "Before super. Can go back? " + view.canGoBack());
super.onPageFinished(view, url);
LogHelper.d(this.getClass().getSimpleName(), "After super. Go Back? " + view.canGoBack());
enableBecauseFinished(view);
if(view.canGoBack())
LogHelper.d(this.getClass().getSimpleName(), "We Can Go Back Here...");
}
Я проверял множество раз, чтобы убедиться, что я не перезаписываю MyWebViewClient новым экземпляром, а я нет. Я также переместил этот OnPageFinished в onCreate фрагмента, как показано ниже:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
LogHelper.d(this.getClass().getSimpleName(), "Before super. Can go back? " + view.canGoBack());
super.onPageFinished(view, url);
LogHelper.d(this.getClass().getSimpleName(), "After super. Go Back? " + view.canGoBack());
}
});
Независимо от того, что я делаю, это всегда распечатывает, что это никогда не может возвратиться. false всегда распечатывается, даже если я нажимаю на ссылку после ссылки на веб-сайте и перемещаюсь по приложению (в любом случае, переходим вперед). Спасибо за помощь.
1 ответ
Возьмите это от меня, ребята - всегда очищайте свой проект, если вы испытываете такие странные вещи. Всегда. Всегда. Всегда. DOH!