كيفية استبعاد DialogFragment عند الضغط خارج مربع الحوار؟

StackOverflow https://stackoverflow.com/questions/8404140

  •  28-10-2019
  •  | 
  •  

سؤال

أنا أستخدم أ DialogFragment, ، وبينما قمت بتعيين صورة لإغلاقها بنجاح (على سبيل المثال،رفض) مربع الحوار عند الضغط عليه، أجد صعوبة في العثور على طريقة لتجاهل مربع الحوار عندما ينقر المستخدم في أي مكان خارجه، تمامًا كما هو الحال مع مربعات الحوار العادية.اعتقدت أنه سيكون هناك نوع من

dialogFragment.setCanceledOnTouchOutside(true);

اتصل، لكني لا أرى ذلك في الوثائق.

هل هذا ممكن مع DialogFragment على الاطلاق؟أم أنني أبحث في الأماكن الخاطئة؟لقد حاولت اعتراض أحداث اللمس في نشاط "الوالدين"، لكن بصرف النظر عن عدم الحصول على أي حدث لمس، لم يبدو ذلك صحيحًا بالنسبة لي.

هل كانت مفيدة؟

المحلول

Genacodicetagpre

يجب استدعاؤها في رمز الترقيم العام (كما أشار Apurv Gupta).

نصائح أخرى

Genacodicetagpre
Genacodicetagpre

هناك الكثير من الإجابات هنا، ولكن يتعطل التطبيق عند فتح مربع الحوار.كتابة getDialog().setCanceledOnTouchOutside(true); داخل onCreateView لم تنجح وتحطمت التطبيق الخاص بي.

(انا استخدم AppCompatActivity كنشاطي الأساسي و android.app.DialogFragment مثل شظيتي).

ما يعمل هو أحد السطرين التاليين:

getDialog().setCanceledOnTouchOutside(true);

أو

this.getDialog().setCanceledOnTouchOutside(true);

داخل onActivityCreated يحب

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogAnimationZoom;
        //getDialog().getWindow().setDimAmount(0.85f);
        getDialog().setCanceledOnTouchOutside(true);//See here is the code
    }

ما لا يجب استخدامه:

DialogFragment.getDialog().setCanceledOnTouchOutside(false);

يلقي الخطأ التالي

enter image description here

وكتابة الكود فيه onCreateView تعطل التطبيق!يرجى تحديث الإجابة إذا وجدت شيئا خاطئا.

Genacodicetagpre

كان خطأ في الكتابة.كان لي نفس المشكلة.يعمل هذا بشكل جيد مع Java و Mono لنظام Android. Mono سيكون:

Genacodicetagpre

أوصي باستخدام الحل فقط بعد تجربة الحلول المذكورة أعلاه.لقد وصفت الحل الذي أقدمه هنا .فقط للإيجاز ، أنا أتحقق من حدود اللمس لـ DialogFragment.getView ().عندما تكون نقاط الاتصال خارج DialogFragment ، فأنا أرفض مربع الحوار.

Genacodicetagpre

عملت لدي
الرمز الخاص بي Genacodicetagpre

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top