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

Android canGoBack sempre falso - android, webview, webviewclient

Eu tenho um aplicativo Android em que estou tentandoexibir alguns botões de voltar / avançar personalizados no título para informar ao usuário que eles podem voltar ou avançar. Minha ideia era alternar a opacidade e definir se elas estão ativadas ou não, se o usuário puder voltar ou avançar no WebView.

Dentro do método OnCreateView do meu 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;
}

E a parte importante do 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...");
}

Eu verifiquei várias vezes para ter certeza de que estounão sobrescrevendo o MyWebViewClient por uma nova instância e não estou. Também mudei esse OnPageFinished para apenas o fragmento "s onCreate da seguinte forma:

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

Não importa o que eu faça, isso sempre mostra queisso nunca pode voltar. false é sempre impresso, mesmo que eu clique no link após o link em um site e navegue no aplicativo (bem, navegue para frente mesmo assim). Obrigado pela ajuda.

Respostas:

1 para resposta № 1

Tire isso de mim pessoal - sempre limpe o seu projeto se estiver experimentando coisas estranhas como essa. Sempre. Sempre. Sempre. DOH!