마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

fragment사용시 이전 fragment의 버튼클릭 리스너가 실행됩니다.

0 추천
안녕하세요.

fragment사용시 이전 실행되었던 fragment의 버튼클릭 리스너가 실행이 됩니다.

예를 들어 A Fragment에서 B Fragment로 이동시, A Fragment 화면은 사라지고 B fragment 화면만 보입니다.

그런데 B Fragment에서, 사라진 A Fragment에서 정의한 같은 위치의 버튼 자리를 탭하면 B Fragment에서 정의한 버튼 클릭 이벤트가 실행되지 않고, 화면에서 사라진 A Fragment에서 정의한 버튼 클릭 이벤트가 실행됩니다.

FragmentTransaction으로 replace를 사용되면 이런 현상이 발생되지 않는데, add를 사용하면 이런 현상이 발생됩니다. transaction으로 add를 사용해야 되는 상황인데, 왜 이렇게 되는지 도무지 이유를 알 수가 없네요. 어떤 부분을 수정해야 할까요?

 

FragmentManager BF = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = BF.beginTransaction();

fragmentTransaction.add(R.id.container_framelayout, BF, tag);

fragmentTransaction.commit();
잔디21 (210 포인트) 님이 2016년 2월 1일 질문
혹시 add를 사용해야만 하는 이유가 있나요?
replace를 사용하면 이전 fragment로 돌아가면(백키나 이전버튼) 화면이 refresh되더라구요. replace가 remove와 add여서 그런것 같습니다. 그래서 add를 사용하려고 합니다.

1개의 답변

0 추천
 
채택된 답변

B Fragment 의 parent 가 되는  xml 에 clickable="true" 를 주세요  

ps. A 또는 그 외의 parent 가 되는 xml 에 모두 주세요

aucd29 (218,390 포인트) 님이 2016년 2월 1일 답변
잔디21님이 2016년 2월 2일 채택됨
감사합니다.
말씀하신대로 수정해서 테스트해 보니 잘 됩니다. 고맙습니다.
...