0
ダイアログフラグメントの外でユーザーがタッチしたときにいくつかのタスクを実行したい。これどうやってするの?私custmomダイアログフラグメントでダイアログの断片の外でユーザーがタッチするときを検出する方法は?
がクローズからダイアログを防ぐために、コードの一部があります時に外部のタッチ:。
getDialog()setCanceledOnTouchOutside(偽);
ダイアログフラグメントの外でユーザーがタッチしたときにいくつかのタスクを実行したい。これどうやってするの?私custmomダイアログフラグメントでダイアログの断片の外でユーザーがタッチするときを検出する方法は?
がクローズからダイアログを防ぐために、コードの一部があります時に外部のタッチ:。
getDialog()setCanceledOnTouchOutside(偽);
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Make us non-modal, so that others can receive touch events.
getWindow().setFlags(LayoutParams.FLAG_NOT_TOUCH_MODAL, LayoutParams.FLAG_NOT_TOUCH_MODAL);
// ...but notify us that it happened.
getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
// Note that flag changes must happen *before* the content view is set.
setContentView(R.layout.my_dialog_view);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// If we've received a touch notification that the user has touched
// outside the app, finish the activity.
if (MotionEvent.ACTION_OUTSIDE == event.getAction()) {
//outside touch event
return true;
}
// Delegate everything else to Activity.
return super.onTouchEvent(event);
}
}
参考:Look at the second answer here.
P.S.質問では、彼はアクティビティとダイアログテーマを持っていると言いました。
@PierGiorgioMisley:私は、ユーザーがダイアログボックスの外をタッチするだけでなく、外すときにカスタム操作を処理するメカニズムを持っていたいと思います。 –