Android(Kotlin)

[절대 잊지말자] Activity에서 transaction된 Fragment에 접근할때

E.I.T.U 2021. 6. 16. 14:03

이걸 해결 못해서 프로그램 구조부터 뜯어고쳤었는데

결국 이걸 해결해야만 하는 문제에 부딪혀서 찾아봤다

 

다들 activity에서 fragment의 함수를 호출할 땐

fragmentManager의 findfragmentbyid 혹은 findfragmentbytag로 찾아야 한다는 건 알 것이다

 

하지만 내 경우처럼 위의 findfragment가 null을 반환해서 전혀 접근하지 못하는 사람들이 많았을 텐데

 

android - GetFragmentManager.findFragmentByTag() returns null - Stack Overflow

 

GetFragmentManager.findFragmentByTag() returns null

getFragmentManager().beginTransaction() .replace(R.id.graph_fragment_holder, new GraphFragment(), "GRAPH_FRAGMENT") .commit(); getFragmentManager().

stackoverflow.com

이 포스트에서 결국 답을 찾아냈다

 

transaction.commit() 후에 fragmentManager.executePendingTransactions() 명령을 꼭 넣어줘야 한다

이때부터 findfragment가 정상적으로 프래그먼트를 반환하더라..

 

좀 더 일찍 알았으면 얼마나 좋았을까