2017-04-05 1 views
0

FragmentWebView이 있는데 특정 div를 숨기고 싶습니다. 작동하지만 이러한 div는 즉시 숨기지 않고 때때로 볼 수 있습니다. 때로는 1 초도 안되는 경우도 있습니다. 나는 setVisibility(View.INVISIBLE)onPageFinished setVisibility(View.VISIBLE)을 추가하려고 시도했습니다. 약간은 도움이되지만 div는 여전히 볼 수 있습니다. WebView에있는 링크를 클릭하면 다음 페이지에 div가 더 오래 표시됩니다. 내가 잘못 뭐하는 거지WebView - getElementById로 div 숨기기가 즉시 작동하지 않습니다.

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.ProgressBar; 

public class TestFragment extends Fragment { 

public WebView mWebView; 
ProgressBar progressBar; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View fragmentView =inflater.inflate(R.layout.fragment_main, container, false); 
    String url = "https://www.example.com"; 
    mWebView = (WebView) fragmentView.findViewById(R.id.webview); 
    mWebView.setVisibility(View.INVISIBLE); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.setWebViewClient(new WebViewClient() 
    { 
     @Override 
     public void onPageFinished(WebView rootView, String url) 
     { 
      mWebView.loadUrl("javascript:(function() { " + 
        "document.getElementById('page-header').remove(); " + 
        "document.getElementsByTagName('footer')[0].style.display=\"none\"; " + 
        "document.getElementsByTagName('ol')[0].style.display=\"none\"; " + 
        "})()"); 
      mWebView.setVisibility(View.VISIBLE); 
     } 
    }); 
    mWebView.loadUrl(url); 
    return fragmentView; 
} 
} 

: 여기

코드인가? 이 작업을 수행하는 더 좋은 방법이 있습니까?

도움을 주시면 대단히 감사하겠습니다. 코드가 지저분한 경우 실례합니다. 저는 초보자입니다. - 감사합니다!

답변

0

Java 코드에서 설정하는 대신 XML 파일 자체에서 표시 여부를 INVISIBLE로 설정하십시오. 이것의 배경은 뷰의 인플레이션을 설정하고 그 후에 가시성을 설정하므로 뷰가 잠시의 시간 간격으로 표시됩니다. 이것은 나를 위해 일하고뿐만 아니라 당신을 위해 일해야합니다. 그것이 도움이되는지 알려주세요!

+0

감사합니다. Java 파일에서 mWebView.setVisibility (View.INVISIBLE);를 가져 와서'WebView '내의 XML 파일에'android : visibility = "invisible"를 추가했습니다. 그게 도움이되지 못했습니다 - 그게 옳은 장소가 아니 었나요? –

관련 문제