الروبوت: كيفية إنشاء تراكب عجلة "عجلة"؟
-
18-09-2019 - |
سؤال
أرغب في عرض تراكب عجلة "عجلة" على رأيي.
يأتي ProgressDialog قريبا، لكنني لا أريد خلفية الحوار أو الحدود.
حاولت تحديد الخلفية الراسخة من نافذة الحوار:
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();
ولكن دون جدوى (أي ما زالت تبدو كما هي دون ... GroundBallwableDrawable).
المحلول
هل راجعت هذا الدورة التعليميةب في نهاية الصفحة تتحدث عن كيفية إنشاء مربع حوار مخصص، وهذا قد يساعدك في وضع مربع حوار تقدم Spinner مع الخلفيات الخاصة بك.
نصائح أخرى
لست متأكدا مما إذا كانت هناك طريقة أفضل، ولكن يمكنك الحصول على عجلة سبينر بمفردها باستخدام شريط التقدم وإعدادها لتكون interdeteterminate. إذا كنت تستخدم Absolutelayout. يمكنك وضعه على وجهات النظر الأخرى. يجب أن يظهر هذا التصميم هذه الطريقة باستخدام XML:
<?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>
من أجل إنشاء تقدم ملء الشاشة في خلفية مظلمة، أستخدم FRAMELAYOUT وتعيين رؤية RelativeDayout المرئي عند الاقتضاء أو ذهبت عند إجراء عملية طويلة:
<?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 بالنسبة لي، شكرا!
في حالتي، استخدمت Layout_Gravity لوضع مركز التقدم - بدلا من استخدام الإحداثيات الصريحة.
<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"
/>