PopupWindow 클래스를 테스트하려고합니다. 나는 팝업을 표시하려면이 방법을 만들었습니다 : 나는과의 모든 로그 정보를 얻을하지 않습니다 팝업이 제대로 표시되어PopupWindow TouchInterceptor가 작동하지 않습니다.
public void showPopup(){
LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.popup, null);
final PopupWindow popup = new PopupWindow(popupView,
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
popup.setOutsideTouchable(true);
popup.setTouchable(true);
popup.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("POPUP", event.toString());
if(event.getAction() == MotionEvent.ACTION_OUTSIDE){
popup.dismiss();
return true;
}
return true;
}
});
popup.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 200);
}
, 그런데 터치 인터셉터가 전혀 작동하지 않는 것 같다 물론 팝업 밖에서 누르는 경우 팝업이 해제되지 않습니다.
팝업이나 호스트 활동에 추가로 설정할 속성이 있습니까? 이 창 밖으로 클릭 그리고 당신이 진정한 필요를 모두 setFocusable()
+ setOutsideTouchable()
, 당신은 setOnDismissListener
를 사용하는 것이 좋습니다 때
이 문제가 있었는데, 어떻게 수정했는지 기억합니다. – a54studio