2017-06-05 11 views
-1

我在android系統做簡單的Web視圖應用程序,但進度條是顯示應用程序的最頂端點擊 here查看圖像。 其實,我想做這樣的點擊hereWebView的進度條顯示效果非常頂部的應用程序

這是我 主要活動

public class MainActivity extends AppCompatActivity implements MyWebChromeClient.ProgressListener { 

WebView wv; 
private ProgressBar mProgressBar; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    wv=(WebView) findViewById(R.id.webview); 
    WebSettings settings = wv.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.getLoadsImagesAutomatically(); 
    settings.getBuiltInZoomControls(); 
    settings.setSaveFormData(true); 
    settings.setEnableSmoothTransition(true); 
    settings.setNeedInitialFocus(true); 
    settings.setSavePassword(true); 
    settings.setDomStorageEnabled(true); 
    settings.setPluginState(WebSettings.PluginState.ON); 
    // add progress bar 
    mProgressBar = (ProgressBar) findViewById(R.id.progressBar); 
    wv.loadUrl("https://www.w3schools.com/"); 
    wv.setWebChromeClient(new MyWebChromeClient(this)); 
    wv.setWebViewClient(new WebViewClient(){ 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 
      mProgressBar.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      mProgressBar.setVisibility(View.GONE); 

     } 
    }); 
} 

@Override 
public void onBackPressed() { 
    if(wv.canGoBack()){ 

     wv.goBack(); 
    } 
    else{ 
     super.onBackPressed(); 
    } 
} 


@Override 
public void onUpdateProgress(int progressValue) { 
    mProgressBar.setProgress(progressValue); 
    if (progressValue == 100) { 
     mProgressBar.setVisibility(View.INVISIBLE); 
    } 
}} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.johnson.apple.MainActivity"> 
<WebView 
    android:id="@+id/webview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 
<ProgressBar 
    android:id="@+id/progressBar" 
    android:minHeight="2dip" 
    android:maxHeight="2dip" 
    android:progressDrawable="@drawable/bg_progress_bar_webview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@android:style/Widget.ProgressBar.Horizontal" /></RelativeLayout> 

希望有人能幫助我 Thnaks提前

+0

這是一種很難從第二個屏幕,告訴那裏的進度條,並在那裏你想要的話,用在screensot其他內容 –

回答

0

加入您的進度條

android:layout_gravity="center_vertical|center_horizontal" 
android:layout_centerInParent="true" 

所以你的進度應該是

<ProgressBar 
android:id="@+id/progressBar" 
android:minHeight="2dip" 
android:maxHeight="2dip" 
android:progressDrawable="@drawable/bg_progress_bar_webview" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="center_vertical|center_horizontal" 
android:layout_centerInParent="true" 
style="@android:style/Widget.ProgressBar.Horizontal" /> 
+0

你的代碼顯示的進度條中間應用程序我想要進度條下的動作欄 – johnson

0

添加android:layout_centerInParent="true"到您的進度佈局

這樣的:

<ProgressBar 
android:id="@+id/progressBar" 
android:minHeight="2dip" 
android:maxHeight="2dip" 
android:progressDrawable="@drawable/bg_progress_bar_webview" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
style="@android:style/Widget.ProgressBar.Horizontal" /> 
+0

不幸的是上面的代碼不工作我想在動作欄下顯示進度條 – johnson

+0

看到我的編輯,我誤解了你的需求。我的錯! –

0

我沒有對這個答案的小黑客正在修改activity_xml

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context="com.app.superdeveloper.weblc.learncoding.MainActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 
    <ProgressBar 
     android:id="@+id/progressBar" 
     android:minHeight="2dip" 
     android:maxHeight="2dip" 
     android:progressDrawable="@drawable/bg_progress_bar_webview" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     style="@android:style/Widget.ProgressBar.Horizontal" /> 

</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_main"/> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    app:srcCompat="@android:drawable/ic_dialog_email" /></android.support.design.widget.CoordinatorLayout> 

現在,它的工作原理