나는 앞으로 또는 앞으로 갈 수 있음을 사용자에게 알리기 위해 제목에 사용자 정의 뒤로/앞으로 버튼을 표시하려고하는 Android 앱이 있습니다. 내 생각은 불투명도를 토글하고 사용자가 WebView에서 뒤로 또는 앞으로 이동할 수 있는지 여부를 설정합니다. 내 조각의 OnCreateView 방법 내부안드로이드 canGoBack 항상 거짓
은 다음과 같습니다
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는 항상 웹 사이트의 링크 후 링크를 클릭하고 앱을 탐색하더라도 인쇄됩니다 (어쨌든 앞으로 탐색). 도와 주셔서 감사합니다.