Я просмотрел все ответы об отключении диалога onTouchOutside, однако я использую DialogFragment в своем приложении. Как я могу добиться отклонения DialogFragment, когда пользователь щелкает за пределами области Диалоговое окно.
Я рассмотрел Диалог исходный код для setCanceledOnTouchOutside
public void setCanceledOnTouchOutside(boolean cancel) {
if (cancel && !mCancelable) {
mCancelable = true;
}
mCanceledOnTouchOutside = cancel;
}
Здесь может быть интересна другая функция, которая является isOutOfBounds
private boolean isOutOfBounds(MotionEvent event) {
final int x = (int) event.getX();
final int y = (int) event.getY();
final int slop = ViewConfiguration.get(mContext).getScaledWindowTouchSlop();
final View decorView = getWindow().getDecorView();
return (x < -slop) || (y < -slop)
|| (x > (decorView.getWidth()+slop))
|| (y > (decorView.getHeight()+slop));
}
но я не мог понять, как использовать их для DialogFragment
В дополнение к этим я изучил состояние приложения с hierarchyviewer и, насколько я понимаю, я могу видеть область диалога, а не его часть (я имею в виду оставшуюся часть экрана после DialogFragment).
Можете ли вы предложить способ реализации этого setCanceledOnTouchOutside для DialogFragment и, если возможно, с образцом кода?