88import android .text .TextUtils ;
99import android .view .Gravity ;
1010import android .view .LayoutInflater ;
11+ import android .view .MotionEvent ;
1112import android .view .View ;
1213import android .view .ViewGroup ;
1314import android .view .Window ;
@@ -54,6 +55,14 @@ public void onStart() {
5455 params .width = WindowManager .LayoutParams .MATCH_PARENT ;
5556 window .setAttributes (params );
5657 window .setBackgroundDrawable (new ColorDrawable (Color .TRANSPARENT ));
58+ window .getDecorView ().setOnTouchListener (new View .OnTouchListener () {
59+ @ Override
60+ public boolean onTouch (View v , MotionEvent event ) {
61+ dismiss ();
62+ return true ;
63+ }
64+ });
65+
5766 }
5867
5968 @ Nullable
@@ -85,6 +94,8 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)
8594 if (mListener != null ) {
8695 mListener .click (position );
8796 }
97+
98+ dismiss ();
8899 }
89100 });
90101
@@ -93,12 +104,7 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)
93104 cancel .setOnClickListener (new View .OnClickListener () {
94105 @ Override
95106 public void onClick (View v ) {
96- AnimationUtils .slideToDown (mRootView , new AnimationUtils .AnimationListener () {
97- @ Override
98- public void onFinish () {
99- dismiss ();
100- }
101- });
107+ dismiss ();
102108 }
103109 });
104110 }
@@ -108,6 +114,16 @@ private void initData() {
108114 items = getArguments ().getStringArray ("items" );
109115 }
110116
117+ @ Override
118+ public void dismiss () {
119+ AnimationUtils .slideToDown (mRootView , new AnimationUtils .AnimationListener () {
120+ @ Override
121+ public void onFinish () {
122+ BottomDialog .super .dismiss ();
123+ }
124+ });
125+ }
126+
111127 public interface OnClickListener {
112128 void click (int position );
113129 }
0 commit comments