이것저것/My_Work

[android] - Activity 기반에서 window 밖의 영역 터치 방지

우담바라 2015. 7. 8. 15:08

다이얼로그에서는 아애와 같이 적용가능

getDialog().setCanceledOnTouchOutside(false);



*Activity 창에서 영역 밖에서는 터치가 인식하지 않도록 하기


(AndroidManifest.xml)

 activity  set style - Theme.Dialog.

<activity android:name=".touch"  

   android:label="@string/app_name"

   android:theme="@android:style/Theme.Dialog">


(코드 적용)

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_yoptions);
    this.setFinishOnTouchOutside(true);
}

단, API 11 이상 에서 적용가능




참고) (모달리스 형태의 다이얼로그제작) 

아래의 코드는, 윈도우 영역 주변을 눌러도 윈도우가 사라지지는 않음. 하지만 역역 밖에서 터치는 인식함

getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL , WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);