0

WebView の読み込み中に ProgressDialog を表示する必要があるため、バックグラウンドでページが読み込まれているのをユーザーが見ることはできません。ダイアログを小さなボックスとして表示することしかできません。アクション バーの下のすべてのスペースをダイアログで埋めたいと思います。

どうすればこれを達成できますか?私はこの方法を使用しましたprogressDialog.setProgressStyle()が、運がありませんでした。

これを達成するための他のより良い方法がある場合は、お知らせください。私の最終的な目標は、ページの読み込みが完了するまで「読み込み中」インジケーターが表示されていた Facebook (プレネイティブ) アプリのようにアプリを動作させることです。

4

1 に答える 1

0

この問題は自分で解決しました。同じ効果を得るために別の方法を使用しました。それがベスト プラクティスかどうかはわかりませんが、私の webview レイアウトは次のようになります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- WebView progress -->

    <LinearLayout
        android:id="@+id/webProgress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:visibility="gone" >

        <ProgressBar
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp" />

        <TextView
            android:id="@+id/login_status_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:text="Loading"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:visibility="visible" />

</LinearLayout>

そして、私が使用する進行状況を表示および非表示にするには:

View webProgress = findViewById(R.id.webProgress);

...

public void showWVProgress() {
    webProgress.setVisibility(View.VISIBLE);
    isWVProgressShowing = true;     
}

public void hideWVProgress() {
    webProgress.setVisibility(View.GONE);
    isWVProgressShowing = false;
}
于 2013-01-08T16:12:50.120 に答える