2016-09-01 5 views
1

У меня есть приложение для Android, в котором я пытаюсь отобразить некоторые пользовательские кнопки назад/вперед в заголовке, чтобы пользователь знал, что может вернуться или вперед. Моя идея заключалась в том, чтобы переключить непрозрачность и установить, разрешены ли они, если пользователь может вернуться или переместиться в WebView.Android canGoBack всегда false

Внутри метода 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!