2013-06-20 4 views
0

사용자 데이터를 표시하는 ListActivity이 있습니다. 처음 사용자가 목록을로드하면 비어 있으므로 ID가 android.R.id.empty 인 뷰를 제공하여 "빈보기"기능을 사용합니다. 이보기는 "항목 없음"메시지가 아닙니다. 사용자에게 목록에 표시 될 데이터 항목을 만드는 방법을 보여주는 일종의 빠른 시작 안내서입니다.ViewStub를 ListActivity의 빈보기로 사용

퀵 스타트 가이드는 많은 그림이 포함 된 복잡한 레이아웃이므로 목록이 비어 있지 않은 일반적인 경우로드하고 메모리에 유지하는 오버 헤드가 필요하지 않습니다. 이런 이유로, 나는 그것을 ViewStub 뒤에 숨기고 싶습니다.

활동이로드되는 동안 목록에서 '빈'보기가 표시되고 ViewStub을로드합니까? 목록 어댑터는 setContentView으로 전화하기 전에 onCreate에 설정되어 있으므로 목록이 표시되기 전에 표시됩니다. 그렇게한다면, '빈보기'기능을 완전히 대체하지 않고 피할 수있는 방법이 있을까요? 분명히 적절한 시간에 직접 가시성을 변경할 수도 있지만, 내 활동에서 코드의 양을 줄이기 위해이 방법을 사용했습니다.

답변

0

Android 프로그래밍에서는 항상 수동으로 수행하기 위해 이러한 종류의 작업을 수행하는 것이 좋습니다. 목록에 실제로 빈 목록이있는 경우 변수에 ViewStub을 수동으로 가져 와서 부 풀릴 수 있습니다. 전혀 어렵지 않습니다. 목록이 완전히로드 된 경우에만 어댑터 크기를 확인해야합니다. 어댑터의 크기가 0이면 ViewStub을 가져 와서 팽창시킬 수 있습니다.

+1

수동으로 처리하는 것이 항상 좋은 경우 ListView에 '빈보기'기능이있는 이유는 무엇입니까? –

+0

내가 말했듯이, 기본 동작보다 복잡하다면 수동으로 수행하는 것이 좋습니다. – tasomaniac