PullToRefresh框架的PullToRefreshScrollView有不能自動刷新的bug,網上的解決辦法大可能是採用延遲若時間再進行刷新,這種解決辦法對性能影響很大。經過了解別人的討論,寫出以下方法,能夠最小的減小延遲。將下面的函數添加到PullToRefreshScrollView中,首次刷新就調用firstReFreshing(true)就能夠了,另外添加函數後會提示mHeaderLayout的權限不夠,將其更改成public便可,還會提示不能在非ui線程調用getHeight()函數,這個不用理會直接編譯就好了。框架
public void firstReFreshing(boolean doScroll) { if (doScroll) { new AsyncTask<Integer, Integer, Integer>() {//該處是針對PullToRefreshScrollView控件的bug進行補充的 @SuppressWarnings("ResourceType") @Override protected Integer doInBackground(Integer... params) { while (true) { if (mHeaderLayout.getHeight() > 0) { return null; } try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } } } @Override protected void onPostExecute(Integer result) { Log.e("shiyan", "zhixingle"); setRefreshing(true); } }.execute(); } else { setRefreshing(false); } }