هل هناك مثال بسيط لفئة popupwindow باستخدام Android v2.0؟
-
21-09-2019 - |
سؤال
نظرت إلى الإنترنت ولم أتمكن من العثور على مثال عاملة لفئة Popupwindow. أمثلة الكود التي وجدتها عبر الإنترنت إما على تجميع ولكن لا تعمل ، أو تستخدم طرقًا تمت إزالتها منذ ذلك الحين (مثل Activity.getViewInflate())
.
هل هناك بسيطة عمل مثال يعرض popupwindow؟
المحلول
لقد قمت بإنشاء مثال عمل بناءً على هذه مجموعات Google Post.
لإنشاء popupwindow عمل بسيط ، ستحتاج إلى القيام بما يلي:
- إنشاء تخطيط XML الذي يصف العرض الذي سيتم تقديمه داخل popupwindow.
- استدعاء popupwindow عن طريق تضخيم تخطيط XML ، وتعيين "طريقة العرض الوالد" المناسبة إلى المنبثقة.
popup_example.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="Test Pop-Up"
/>
</LinearLayout>
كود جافا:
LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
PopupWindow pw = new PopupWindow(
inflater.inflate(R.layout.popup_example, null, false),
100,
100,
true);
// The code below assumes that the root container has an id called 'main'
pw.showAtLocation(this.findViewById(R.id.main), Gravity.CENTER, 0, 0);
نصائح أخرى
afaik فقط أعمال المطلقة(من فضلك تأكيد) ، كما رأينا في http://sree.cc/google/android/android-popup-window . لقد أظهرت المنبثقة اليمين ، لكن LinearLayout لم يكن يعرض جميع العناصر. ولكن تم إهمال المطلقة!
يعمل Framelayout أيضًا, ، لكن تنظيم المشاهدات هو كابوس لأن الوثائق الرسمية تقول إنه أمر جيد فقط لعقد منظر واحد.
ايضا، لتكون قادرًا على تلقي أحداث اللمس, ، تحتاج إلى القيام بذلك: الانتكاس (new bitmapdrawable ()) ؛
كما أوضح كذلك في فصل نافذة النافذة المنبثقة Android
أنت تحصل على الخفاء لأنك لم تحدد لون الخلفية للتخطيط الذي تقوم بتضخيمه.