私は、ユーザーが前後に移動できることを知らせるために、タイトルにカスタムの戻る/進むボタンを表示しようとしているAndroidアプリを持っています。私のアイデアは、不透明度を切り替えて、ユーザーがWebViewで前後に移動できるかどうかを設定するかどうかを設定することでした。私のフラグメントのOnCreateViewメソッド内Android canGoBack always false
は次のとおりです。
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の重要な部分()である:私は私が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...");
}
新しいインスタンス、そして私はそうではありません。私はまた、これは、このようなとしてだけでフラグメントののonCreateにOnPageFinished移動している:
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が常に出力されます(とにかく、ナビゲートしてください)。助けてくれてありがとう。