2013-07-28 2 views
1

Я бы хотел добавить индикатор загрузки в мой веб-просмотр, есть ли для этого решение?Индикатор загрузки веб-сайта андроид-фрагмента

благодарим вас заранее!

import com.actionbarsherlock.app.SherlockFragment; 

public class Showing_now extends SherlockFragment{ 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View mainView = (View) inflater.inflate(R.layout.activity_showing_now, container, false); 
    WebView webView = (WebView) mainView.findViewById(R.id.webViewsn); 

    webView.setWebViewClient(new MyWebViewClient()); 
    webView.getSettings().setPluginsEnabled(true); 
    webView.getSettings().setBuiltInZoomControls(false); 
    webView.getSettings().setSupportZoom(false); 
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setDomStorageEnabled(true); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setPluginState(PluginState.ON); 
    webView.loadUrl("http://www.myweburl.com"); 
    return mainView; 
} 
    private class MyWebViewClient extends WebViewClient { 

    } 
} 

ответ

2

Если вы используете ActionBarSherlock, и библиотека Поддержка Android, я предлагаю использовать эту установку

protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_PROGRESS); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 
    setSupportProgressBarVisibility(true); 
    WebView mWebView = (WebView) findViewById(R.id.WebView); 
    mWebView.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) { 
      setSupportProgress(progress * 100); 
      if (progress == 100) { 
       setSupportProgressBarVisibility(false); 
      } 
     } 
    }); 
    webView1.loadUrl("http://www.google.com"); 
} 

Так довольно много, вам просто нужно позвонить requestWindowFeature(Window.FEATURE_PROGRESS), прежде чем вы установите ContentView и после этого , используйте setSupportProgressBarVisibility(true);, чтобы установить ProgressBar на создание, когда ваши webview сначала загружается. Чтобы остановить прогресс, когда вы закончите загрузку контента, вы должны создать новый WebChromeClient и добавить OnProgressChanged и установить видимость ProgressBar на значение false, если прогресс достигнет 100%.

+0

Я стараюсь использовать его, но его не работает скажите, пожалуйста, где я должен добавить? –

+0

Весь этот код должен быть в 'onCreate', когда вы инициализируете свою деятельность. Что именно это не удается? Вы получаете «NullPointerException»? Кроме того, поскольку кажется, что вы используете фрагменты, вам, возможно, придется немного изменить мой код. вместо использования 'this', попробуйте' getActivity() ' – TheWizKid95

Смежные вопросы