我有一个Android应用程序,我试图在标题中显示一些自定义后退/前进按钮,让用户知道他们可以返回或前进。我的想法是切换不透明度并设置是否在用户可以在WebView中后退或前进时启用它们。
我片段中的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。谢谢您的帮助。
答案 0 :(得分:1)
从我这些人那里拿走它 - 如果你遇到像这样糟糕的事情,总是清理你的项目。总是。总是。总是。 DOH!