텍스트가있는 축소판 격자를 표시하는 어댑터가 있습니다. 이 썸네일은로드하기에 무겁고 그리기가 무겁습니다.어댑터 업데이트를위한 최선의 방법
썸네일 그리드 뷰는 2 초마다 1 개의 새 항목으로 새로운 내용으로 꾸며집니다.
내 어댑터가 새 항목을 삽입하기 위해 나는 외부에서 호출하는 기능을 가지고 :
내가있는 gridview에 새로운 요소를 삽입 할 때, 내 현재의 접근 방식이며, 어떻게됩니까public void postNew(Item i) {
arrayStuff.put(i);
notifyDataSetChanged();
}
, 그것은 심지어 모든 것을 새로 고침 추가 된 항목이 보이지 않을 경우. 새로 고침 프로세스 종류는 사용자가 특히 gridview를 탐색하고 새 콘텐츠가 도착할 경우 경험을 깰 수 있습니다.
어떻게 개선 하시겠습니까? 가벼운 'notifyDataSetChanged()'또는 이와 비슷한 것이 있습니까?
흥미 롭습니다. getLastVisiblePosition
rupps
오, 내 실수로, 목록보기에 항목 추가에 대해 알게하려면 notifydatasetchanged가 필요합니다. 한 가지 할 수있는 것은 getview가 마지막 위치를 호출 할 때마다 arrayStuff.getSize == listSize에 대한 점검을 수행하는 것입니다. 일치하지 않으면 notifydatasetchanged를 수행 할 수 있습니다. –
멋진 트릭을 보인다. 배경 새로 고침이 필요합니다. 왜냐하면 목록에 3000 개의 항목이 있고 새 항목이 추가되고 사용자가 처음 25 개를 표시하는 경우가 종종 있기 때문입니다. 여기서는 다시 그리기가 필요하지 않습니다! 기본 위젯 (TwoWayGridView)의 소스 코드를 탐색하고 있는데 무엇을 그리는 최적화와 관련하여 DataSetChanged()에서 많은 일을하는 것을 볼 수 있습니다. 그리고 이러한 최적화를 위해 내 데이터를 반복적으로 무시합니다. – rupps