반응형
제목 정하기 정말 힘드네..이번건..;;
개발을 하다 보면 이렇게 최상단에 Fragment를 띄워야 하는 상황이 발생한다.
제일 쉬운방법은 역시 Dialog를 만들어 띄우는 것이지만...( 지금 생각해보면 걍 Dialog로 띄울껄.. ) 나는 Fragment로 구현하였다.
동작은 '확인' 버튼을 클릭하면 그냥 저 Fragment가 없어지면 되는 아주 간단한 구조.
저 영역은 조금 더 디테일하게 표현하면 아래 그림과 같다
B라는 Activity위에 A라는 Fragment가 있는 건데, 배경이 검은색이어서 그렇지.. 지금 저 공지사항 Fragment는 전체 화면을 차지하고 있다.
공지사항 뒤에는 B Activity에 구현된 Button이 있는데 Fragment의 하얀 부분을 클릭해도 B Activity의 Button이 클릭된다는 이슈가 있었다.
이럴때 최상의 뷰에서 그 이하 뷰에 이벤트를 전달하지 않도록 막아주어야 하는데 그 방법은 아래와 같다.
layoutName.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
layoutName은 A Fragment의 전체 layout의 id값을 넣어 주면 된다.
이 레아아웃에서 발생하는 이벤트를 하위로 보내지 않겠다는 설정(?)이다.
반대로 return false를 처리 하면 하위로 이벤트를 보내겠다는 의미로 해석된다.
반응형