2013年9月27日 星期五

Android 自行定義Dialog 點擊畫面關閉

今天做了一個清單列表,點擊之後會彈出一個 自訂的 Dialog,
但在設計上,此Dialog無任何按鈕,只能使用手機上的back鍵關閉返回。

因此要做到點擊畫面空白處就關閉Dialog使用到了 onTouchEvent 


       @Override
public boolean onTouchEvent(MotionEvent event) {
               //點擊畫面空白處關閉Dialog
super.dismiss(); //關閉此Dialog
return super.onTouchEvent(event);
}

Dialog為一張卡片的樣子,此處List以外的畫面只要被點擊就會關閉  Dialog。



此外可以利用兩個float來獲取觸控的X與Y軸:

觸控的 X 軸位置
float X = event.getX(); 

觸控的 Y 軸位置
float Y = event.getY();
在利用switch判斷觸控所要作的事情
判斷觸控的動作
switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: // 按下
            //要處理的事件
            return true;
        case MotionEvent.ACTION_MOVE: // 拖曳
             //要處理的事件
            return true;
        case MotionEvent.ACTION_UP: // 放開
             //要處理的事件
            return true;
        }


更簡單的方法...就是setCanceledOnTouchOutside(true);