/ / Android canGoBack siempre falso - android, webview, webviewclient

Android CanGoBack siempre es falso: Android, webview, webviewclient

Tengo una aplicación de Android donde intentomuestre algunos botones personalizados hacia atrás / adelante en el título para que el usuario sepa que puede retroceder o avanzar. Mi idea era alternar la opacidad y establecer si están habilitadas o no si el usuario puede retroceder o avanzar en WebView.

Dentro del método OnCreateView de mi fragmento está:

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;
}

Y la parte importante de MyWebViewClient () es:

@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...");
}

He revisado varias veces para asegurarme de que estoyno sobrescribe MyWebViewClient con una nueva instancia, y no lo estoy. También he movido este OnPageFinished solo en el fragmento onCreate de esta manera:

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());
}
});

No importa lo que haga, esto siempre imprime quenunca puede volver falso siempre se imprime aunque haga clic en un enlace tras otro en un sitio web y navegue por la aplicación (bueno, navegue hacia adelante de todos modos). Gracias por la ayuda.

Respuestas

1 para la respuesta № 1

Tómelo de mi parte, amigos: siempre limpien su proyecto si experimentan cosas inestables como esta. Siempre. Siempre. Siempre. DOH!