欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)SwipeRefreshLayout首次進(jìn)入自動(dòng)刷新

 更新時(shí)間:2017年01月02日 15:14:06   作者:RaphetS  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)SwipeRefreshLayout首次進(jìn)入自動(dòng)刷新,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

看到了Android版知乎實(shí)現(xiàn)了這種效果,就自己也實(shí)現(xiàn)了一下。

先來一張效果圖

實(shí)現(xiàn)方式:

方法一:

①在onWindowFocusChanged()方法中,設(shè)置為刷新狀態(tài)為true

@Override
  public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    mSwipeRefreshLayout.setRefreshing(true);
  }

②在獲取數(shù)據(jù)完成后設(shè)置刷新狀態(tài)為false

if (mSwipeRefreshLayout.isRefreshing()) {
              mSwipeRefreshLayout.setRefreshing(false);
            }

方法二:

①調(diào)用mSwipeRefreshLayout.measure()方法后,設(shè)置刷新狀態(tài)為true

//手動(dòng)調(diào)用,通知系統(tǒng)去測量
    mSwipeRefreshLayout.measure(0,0);
    mSwipeRefreshLayout.setRefreshing(true);

②在獲取數(shù)據(jù)完成后設(shè)置刷新狀態(tài)為false

if (mSwipeRefreshLayout.isRefreshing()) {
              mSwipeRefreshLayout.setRefreshing(false);
            }

說明:
方法一和方法二的第一步的目的,都是為了在SwipeRefreshLayout繪制完成之后,再設(shè)置刷新狀態(tài)為true,否則大多數(shù)情況下,SwipeRefreshLayout刷新球會(huì)不顯示。

源碼:

package org.raphets.swiperefreshlayoutdemo;

import android.graphics.Color;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
  private SwipeRefreshLayout mSwipeRefreshLayout;
  private TextView mTextView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.srl);
    mTextView = (TextView) findViewById(R.id.tv);


    //設(shè)置刷新球顏色
    mSwipeRefreshLayout.setColorSchemeColors(Color.BLUE, Color.RED, Color.YELLOW);
    mSwipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.parseColor("#BBFFFF"));
    //手動(dòng)調(diào)用,通知系統(tǒng)去測量
//    mSwipeRefreshLayout.measure(0,0);
    mSwipeRefreshLayout.setRefreshing(true);
    getData();
  }

  /**
   * 模擬網(wǎng)絡(luò)請(qǐng)求
   */
  private void getData() {
    new Thread() {
      @Override
      public void run() {
        super.run();
        //模擬網(wǎng)絡(luò)請(qǐng)求
        try {
          Thread.sleep(3000);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        //在UI線程中更新UI
        runOnUiThread(new Runnable() {
          @Override
          public void run() {
            mTextView.setText("首次進(jìn)入自動(dòng)刷新");
            if (mSwipeRefreshLayout.isRefreshing()) {
              mSwipeRefreshLayout.setRefreshing(false);
            }
          }
        });
      }
    }.start();
  }

  @Override
  public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    mSwipeRefreshLayout.setRefreshing(true);
  }
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論