छू नहीं अनुमति देने के लिए अधिक सामान्य झंडा है:
मामले में हम इसे अच्छे और फ्रेम के बिना, निम्नलिखित कोड जोड़ा जा सकता है बनाना चाहते
मुझे बाहर स्पर्श पर खारिज करने के लिए वैकल्पिक तरीका मिला है। कोड नमूना नीचे की जांच करें, कि निश्चित रूप से काम करेगा,
@Override
public void onStart() {
// mDialogView is member variable
mDialogView = getView();
mDialogView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float eventX = event.getRawX();
float eventY = event.getRawY();
int location[] = new int[2];
mDialogView.getLocationOnScreen(location);
if (eventX < location[0] || eventX > (location[0] + mDialogView.getWidth()) || eventY < location[1]
|| eventY > location[1] + mDialogView.getHeight()) {
dismiss();
return true;
}
return false;
}
});
}
मेरे मामले में, मुझे नहीं शून्य मान के रूप में getDialog() हो रही थी, लेकिन getDialog()। खारिज() काम नहीं कर रहा था। इसके अलावा, उपरोक्त के रूप में चिह्नित समाधान भी मेरे मामले में काम नहीं करता है। तो, मैंने यह दृष्टिकोण लिया।
मैं पहले से ही STYLE_NO_FRAME साथ काम कर रहा हूँ, और यह केवल एक है कि ठीक मेरे लिए (यूआई के बाद से)। – Yaniv
@yaniv तो कोड दिखाने का समय है :) – Warpzit