SwipeRefreshLayoutのsetRefreshing(true)が効かない場合の対処

Posted on Sat 14 November 2015 in Android • Tagged with Android

SwipeRefreshLayoutのsetRefreshing(true)は、onMeasure()が呼ばれるまでは有効にならないみたいです。

参考:https://code.google.com/p/android/issues/detail?id=77712

このような場合、SwipeRefreshLayoutを継承して下記のようにsetRefreshingが呼ばれた時の引数の値を覚えておいて、onMesure()のタイミングでsetRefreshing()をもう一回読んであげると良いようです。

// MySwipeRefreshLayout.java  
public class MySwipeRefreshLayout extends SwipeRefreshLayout {  
  private boolean mMeasured = false;
  private boolean mPreMeasureRefreshing = false;

  public MySwipeRefreshLayout(Context context) {  
    super(context);  
  }

  public MySwipeRefreshLayout(Context context, AttributeSet attrs) {  
    super(context …

Continue reading