태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

프래그먼트가 표시되지 않아요 -_-;;

2011.08.16 17:29



안드로이드 3.0부터 추가된 요소인 Fragment.....

이는 독립된 로직을 가지고 있는 일련의 뷰를 포함하는 액티비티를 작성할 때
매우 유용합니다. 덕분에 제가 최근 만드는 앱에서는 프래그먼트를 절찬리(?) 사용하고 있지요.

하지만, 아직 사용법이 익숙하지 않아서인지 몰라도,
사소하지만 큰 실수를 자주 하곤 합니다.

가장 많이 접하는 경우가.....

"프래그먼트를 추가했는데, 왜 프래그먼트가 보이지 않는거지??" 

이 상황일 것으로 추측됩니다. ㅎㅎ
과연, 이유가 무엇일까요????

네... 사실 별건 없습니다.
바로 commit() 메서드를 호출하지 않았기에....ㅠㅠ

프래그먼트를 화면에 추가하거나 표시하려면 FragmentTransaction 클래스의 메서드를 사용하는데,
여기에서 추가/교체/제거 등의 작업을 한 후 반드시 commit() 메서드를 호출해야 변경 사항이 적용됩니다.
그렇지 않아면.. 백날 건드려봤자 변하는 것은 없지요...

사소한 것이지만 자주 잊기 쉬운 것이라 한번 정리해 보았습니다. ^^

ps. 한가지 예외가 있따면, 액션바의 OnTabListener 의 인자로 받는 FragmentTransaction을 사용할 때는
commit() 메서드를 호출하면 안됩니다. 자동으로 commit() 메서드를 호출해주기 때문이지요. 


저작자 표시 비영리 변경 금지
신고

커니 유저 인터페이스/프래그먼트(Fragment) , , , , , ,

  1. Blog Icon

    비밀댓글입니다

  2. temp.name이 어떤건가요?? 컨테이너 아이디인가요??

  3. Blog Icon
    김성환

    음.. 프래그먼트 아직도 정확하게 개념이 잡히지 않네요;;; ㅠㅠ

    "TabListener에서 commit()을 안하고 replace만을 했을 뿐인데 왜 프래그먼트가 보이는 거지?"

    이러고 저 혼자 계속 생각하고 있었는데;;

    ps부분에서 말끔하게 해결이 되는군요 ㅠㅠ