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 № 1Tómelo de mi parte, amigos: siempre limpien su proyecto si experimentan cosas inestables como esta. Siempre. Siempre. Siempre. DOH!