Frage

Ich möchte auf meiner Ansicht nach einer modalen Fortschritt „Rad“ Overlay zeigen.

Die ProgressDialog nahe kommt, aber ich will nicht den Dialog Hintergrund oder Grenze.

Ich habe versucht, den Hintergrund ziehbar des Dialogfensters Einstellung:

this.progressDialog = new ProgressDialog(Main.this);

this.progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
this.progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
this.progressDialog.setCancelable(false);
this.progressDialog.setIndeterminate(true);

this.progressDialog.show();

aber ohne Erfolg (d sieht immer noch die gleiche wie ohne ... setBackgroundDrawable-Code).

War es hilfreich?

Lösung

Haben Sie ausgecheckt diese Tutorial ? Am Ende der Seite spricht er darüber, wie ein benutzerdefinierten Dialog zu schaffen, und dass möglicherweise ein Spinner Fortschritt Dialogfeld mit Ihrem eigenen Hintergrund setzen helfen.

Andere Tipps

Nicht sicher, ob es ein besserer Weg, aber man konnte das Spinnrad auf seinem eigenen, indem ein ProgressBar und wenn er interdeterminate sein. Wenn Sie eine AbsoluteLayout verwenden können Sie es auch andere Ansichten setzen. Dieses Layout sollte diese Methode mit XML zeigen:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:id="@+id/AbsoluteLayout"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ProgressBar android:id="@+id/ProgressBar"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:indeterminate="true" android:indeterminateOnly="true"
        android:isScrollContainer="true" android:layout_x="100dip"
        android:layout_y="10dip" android:soundEffectsEnabled="true"></ProgressBar>
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello"
        android:layout_gravity="center_horizontal" android:gravity="center_horizontal"
        android:layout_y="25dip" />
</AbsoluteLayout>

Um einen Vollbild-Fortschritt auf einem dunklen Hintergrund ich eine FrameLayout zu erstellen und die Sichtbarkeit des RelativeLayout auf VISIBLE gesetzt, wenn erforderlich oder GONE, wenn die lange Operation durchgeführt wird:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ScrollView 
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:orientation="vertical"
        android:padding="3dip" >

            <!-- Your regular UI here -->

    </LinearLayout>
   </ScrollView>

   <RelativeLayout
       android:id="@+id/relativelayout_progress"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:visibility="gone"
       android:background="#aa000022" >

       <ProgressBar 
           android:layout_centerInParent="true"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:indeterminateOnly="true" />

    </RelativeLayout>
</FrameLayout>

Klarth Lösung funktioniert für mich, danke!

In meinem Fall habe ich die layout_gravity für Mittelplatzierung des progress_indicator, anstatt explizite Koordinaten.

    <ProgressBar android:id="@+id/pb"
        android:layout_width="40dp" 
        android:layout_height="40dp"
        android:indeterminate="true" 
        android:indeterminateOnly="true"
        android:isScrollContainer="true" 
        android:layout_gravity="center_vertical|center_horizontal"
        android:soundEffectsEnabled="false"
        />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top