Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. @Override
  2. public void onViewCreated(final View view, Bundle savedInstanceState) {
  3. super.onViewCreated(view, savedInstanceState);
  4.  
  5. // This is done in a post() since the dialog must be drawn before locating.
  6. getView().post(new Runnable() {
  7.  
  8. @Override
  9. public void run() {
  10.  
  11. Window dialogWindow = getDialog().getWindow();
  12.  
  13. // Make the dialog possible to be outside touch
  14. dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
  15. WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
  16. dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  17.  
  18. getView().invalidate();
  19. }
  20. });
  21. }
  22.  
  23. @Override
  24. public void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26.  
  27. // Hide title of the dialog
  28. setStyle(STYLE_NO_FRAME, 0);
  29. }
  30.  
  31. window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
  32. WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
  33.  
  34. @Override
  35. public void onStart() {
  36. // mDialogView is member variable
  37. mDialogView = getView();
  38. mDialogView.setOnTouchListener(new View.OnTouchListener() {
  39.  
  40. @Override
  41. public boolean onTouch(View v, MotionEvent event) {
  42. float eventX = event.getRawX();
  43. float eventY = event.getRawY();
  44.  
  45. int location[] = new int[2];
  46. mDialogView.getLocationOnScreen(location);
  47.  
  48. if (eventX < location[0] || eventX > (location[0] + mDialogView.getWidth()) || eventY < location[1]
  49. || eventY > location[1] + mDialogView.getHeight()) {
  50. dismiss();
  51. return true;
  52. }
  53. return false;
  54. }
  55. });
  56. }
  57.  
  58. FragmentTransaction transaction = fragmentManager.beginTransaction();
  59. // For a little polish, specify a transition animation
  60. transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
  61. // To make it fullscreen, use the 'content' root view as the container
  62. // for the fragment, which is always the root view for the activity
  63. transaction.add(android.R.id.content, newFragment)
  64. .addToBackStack(null).commit();
  65.  
  66. @NonNull
  67. @Override
  68. public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
  69. final Dialog dialog = super.onCreateDialog(savedInstanceState);
  70. dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
  71. return dialog;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement