Android v4包中的 SwipeRefreshLayout 官方的下拉重新整理組件

來源:互聯網
上載者:User

Android v4包中的 SwipeRefreshLayout 官方的下拉重新整理組件

SwipeRefreshLayout在v4包下,對應的v4Demo中也有相應的例子。如果沒有請下載最新support-v4

SwipeRefreshLayout 只能有一個直接子View,可能是一個ListView或一個Layout或其他需要重新整理的組件。

setOnRefreshListener 用於監聽重新整理的動作。SwipeRefreshLayout 下拉,就會有重新整理的效果出來,觸發該監聽。

如果需要一個重新整理的動畫,setRefreshing(true), 停: setRefreshing(false)

如果要禁用重新整理動畫和手勢響應,ssetEnable(false), 恢複setEnable(true)


來個v4的例子:

public class SwipeRefreshLayoutActivity extends Activity implements OnRefreshListener {    public static final String[] TITLES =    {            "Henry IV (1)",            "Henry V",            "Henry VIII",            "Richard II",            "Richard III",            "Merchant of Venice",            "Othello",            "King Lear",            "Henry IV (1)",            "Henry V",            "Henry VIII",            "Richard II",            "Richard III",            "Merchant of Venice",            "Othello",            "King Lear",            "Henry IV (1)",            "Henry V",            "Henry VIII",            "Richard II",            "Richard III",            "Merchant of Venice",            "Othello",            "King Lear",            "Henry IV (1)",            "Henry V",            "Henry VIII",            "Richard II",            "Richard III",            "Merchant of Venice",            "Othello",            "King Lear"    };    // Try a SUPER quick refresh to make sure we don't get extra refreshes    // while the user's finger is still down.    private static final boolean SUPER_QUICK_REFRESH = false;    private View mContent;    private SwipeRefreshLayout mSwipeRefreshWidget;    private ListView mList;    private Handler mHandler = new Handler();    private final Runnable mRefreshDone = new Runnable() {        @Override        public void run() {            mSwipeRefreshWidget.setRefreshing(false);        }    };    @Override    public void onCreate(Bundle bundle) {        super.onCreate(bundle);        setContentView(R.layout.swipe_refresh_widget_sample);        mSwipeRefreshWidget = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_widget);        mSwipeRefreshWidget.setColorScheme(R.color.color1, R.color.color2, R.color.color3,                R.color.color4);        mList = (ListView) findViewById(R.id.content);        ArrayAdapter arrayAdapter = new ArrayAdapter(this,                android.R.layout.simple_list_item_1, android.R.id.text1, TITLES);        mList.setAdapter(arrayAdapter);        mSwipeRefreshWidget.setOnRefreshListener(this);        mSwipeRefreshWidget.setProgressViewEndTarget(false, 8);    }    @Override    public void onRefresh() {        refresh();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.swipe_refresh_menu, menu);        return true;    }    /**     * Click handler for the menu item to force a refresh.     */    @Override    public boolean onOptionsItemSelected(MenuItem item) {        final int id = item.getItemId();        switch(id) {            case R.id.force_refresh:                mSwipeRefreshWidget.setRefreshing(true);                refresh();                return true;        }        return false;    }    private void refresh() {        mHandler.removeCallbacks(mRefreshDone);        mHandler.postDelayed(mRefreshDone, 1000);    }}

swipe_refresh_widget_sample.xml

        



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.