滾動到ScrollView底部時,不是很流暢,出現閃爍現象
private void onRequestVodsFinished(int resultCode, IVideoResult result) { Logger.v(TAG, "@onRequestVodsFinished."); switch (resultCode) { case TvieRequest.RESULT_ERROR: case TvieRequest.RESULT_EMPTY: case TvieRequest.RESULT_CANCEL: break; case TvieRequest.RESULT_SUCCESS: TodayRankResult res = (TodayRankResult) result; if (isPullUping()) { setPullUping(false); vPullToRefresh.onFooterRefreshComplete(); if (res.getData() == null || res.getData().size() == 0) { showToast("沒有更多數據了"); } else { listVideo.addAll(res.getData()); initOrUpdateVods(); // 滾動到ScrollView的底部 svVods.post(new Runnable() { public void run() { svVods.fullScroll(ScrollView.FOCUS_DOWN); } }); } } else { listVideo = res.getData(); initOrUpdateVods(); } } }
其中initOrUpdateVods()方法中重新創建了svVods唯一孩子中的內容
private void initOrUpdateVods() { vVods.removeAllViews(); VodAdapter vodAdapter = new VodAdapter(context, listVideo); FixedGridLayout gridVod = new FixedGridLayout(context); gridVod.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); gridVod.setRowParams(vVods.getMeasuredWidth() / columns, columns); gridVod.setAdapter(vodAdapter); vVods.addView(gridVod); }