Để làm điều đó, một lá cờ của Window
cho phép các liên lạc bên ngoài nên được bật và cho sự xuất hiện tốt cờ mờ nền phải được xóa.
Vì nó phải được thực hiện sau khi hộp thoại được tạo, tôi đã thực hiện nó qua Handler
.
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// This is done in a post() since the dialog must be drawn before locating.
getView().post(new Runnable() {
@Override
public void run() {
Window dialogWindow = getDialog().getWindow();
// Make the dialog possible to be outside touch
dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getView().invalidate();
}
});
}
Tại thời điểm này, bạn có thể chạm vào bên ngoài.
Trong trường hợp chúng tôi muốn làm cho nó đẹp hơn và không có khung, mã sau đây có thể được thêm vào:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Hide title of the dialog
setStyle(STYLE_NO_FRAME, 0);
}
Tôi đã làm việc với STYLE_NO_FRAME, và nó là người duy nhất mà OK cho tôi (từ giao diện người dùng). – Yaniv
@yaniv sau đó là lúc để hiển thị mã :) – Warpzit