2012-11-02 3 views
1

다른보기로 조각을 업데이트해야합니다. Fragment :: onCreateView() 메서드 호출을 강제로 (사용자에게 내 업데이트를 표시하기 위해) 알아 냈으므로 FragmentTransaction의 메서드 replace (,) 만 사용할 수 있습니다. FragmentTransaction :: replace()를 호출 할 때마다 새 Fragment를 만들고 onCreateView() 메서드에서 반환하기위한 새 뷰를 만드는 것이 좋습니다. 하지만 나는 몇 가지 견해를 기억하고 싶습니다. 내 조회수를 재사용하려면 어떻게해야합니까?조각의보기를 새 조각으로 재사용하는 방법

새로운 조각에서 내보기 (이미 교체 된 조각에 첨부 된)를 사용하면 예외가 발생합니다. "지정된 자식에 이미 부모가 있습니다. 먼저 아이의 부모에 대한 removeView()를 호출하십시오. "

그래서 FragmentTransaction.detach() 또는 FragmentTransaction.remove()를 호출하여 조각에서 뷰를 분리하려고하면 이미 바뀐 조각에서 액티비티와 뷰가 삭제되지만, 도움이되지는 않습니다.

은 사람 (즉 onCreateView()?

+2

당신은 더 나은 것 Fragment 내에 포함 된 뷰를 유지하여 Fragment 자체를 유지한다. 적절하게 처리합니다. Viewless Fragments가 해당 Fragment에 데이터를 보내면 View를 업데이트하거나 View로 매개 변수를 작성하십시오. 더 깨끗하고 장기적으로 유지 보수가 용이합니다. – DeeV

+0

@DeeV 당신이 완전히 맞았 기 때문에 대답을 넣어주세요. – Warpzit

+0

좋아, 할 수있어. 기분이 좋지는 않지만 답변입니다. – DeeV

답변

2

내부에 반환 당신은 조각 자체가 적절하게 처리 할 수 ​​있도록 조각에 포함 된 뷰를 유지하는 것이 더 낫다는 아이 뷰를 제거하기 위해 조각을 강제하는 방법을 알고 있나요. 어느 보이지 않는 조각이보기를 업데이트하거나 매개 변수를 사용하여보기를 구축하는 그 조각에 데이터를 보낼 수있다. 그것은 훨씬 더 유지 보수, 깨끗하고 장기적으로합니다.

체크 아웃 Adding a Fragment without UI 섹션을 참조하십시오.

관련 문제