2013-09-03 2 views
3

나는 때때로 생성되는 조각을위한 복잡한 ViewGroup을 가지고 있습니다. 한 번에 하나의 인스턴스 단편 만 표시 할 수 있습니다.Android에서 풍선보기 재활용

부풀려진 뷰를 저장하고 조각을 다시 만들 때 재사용하는 것이 가능한지 궁금합니다.

명백하게 뷰 속성을 변경해야하지만 적어도 뷰를 다시 팽창시킬 필요는 없습니다.

단순히 뷰 요소를 정적 요소로 저장하고 존재하는지 확인한 다음 사용했는지 확인해 보았습니다.

그러나 View 요소에는 일부 프래그먼트 고유의 속성이 있으며 다른 참조 ID가있는 조각과 함께 사용하면 실패합니다. 실패합니다.

누군가 팽창 된 뷰를 캐시하고 재사용하려고 했습니까?

답변

0

다른 조각에서보기를 재사용하는 것은 매우 위험한 것처럼 보입니다 (동일한 조각에서 다시 사용하는 것이 안전하지만).

활동이 다시 생성되는 경우와 같이 컨텍스트가 변경되면 어떻게됩니까? 나는 아무런 전망도 getContext()라고 전화하지 않기를 바래야하고 그것이 무효 할 것이고 예기치 않은 결과를 가져올 수 있기 때문에 활동 컨텍스트를 사용하려고 시도해야한다고 생각합니다.

가능하면 중첩 된 가중치 및 RelativeLayouts을 피하는 등 레이아웃을 최적화했는지, 레이아웃을 단순화하기 위해 맞춤보기를 사용하는지 확인하십시오.

+0

그러면 조각을 다시 사용할 수 있습니까? 내가 popBack을 호출하면 캐시로 튀어 나옵니다. 그러면 호출 할 때 캐시의 조각을 사용합니까? 그것은 사전 팽창 된 전망을 포함 할 것입니다, 그렇지 않습니까? –

+0

나는 그렇게 생각하지 않는다. 'setRetainInstance (true)'를 사용해도 여전히 레이아웃을 재 작성할 필요가 있습니다. 보기가 활동 컨텍스트에 바인드되어 있고 그것에 대해 아무 것도 할 수 없으며, 활동이 재 작성되면보기를 다시 팽창해야합니다. 이것이 Android에서 제공하는 멀티 태스킹 가격입니다. 사용자 지정보기는 기본 제공보기보다 훨씬 빠르므로 시도해 보셨습니까? – Dalmas