1. 程式人生 > >快速整合Android實現下拉重新整理上拉載入更多

快速整合Android實現下拉重新整理上拉載入更多

本文實現一分鐘快速整合BGARefreshLayout下拉重新整理和上拉載入的功能.

這個是簡單單功能的整合方法,詳細BGARefreshLayout請到github中的demo,這只是我簡化版快速整合.


重要的程式碼實現如下:

MainActivity類:

public class MainActivity extends AppCompatActivity implements BGARefreshLayout.BGARefreshLayoutDelegate{
     BGARefreshLayout mRefreshLayout;
     ListView mLv;
     List<String> datas;
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 1:
                    Toast.makeText(MainActivity.this, "下拉重新整理完畢!", Toast.LENGTH_SHORT).show();
                    mRefreshLayout.endRefreshing();
                    break;
                default:
                    Toast.makeText(MainActivity.this, "載入更多完畢!", Toast.LENGTH_SHORT).show();
                    datas.add("新增資料");
                    mRefreshLayout.endLoadingMore();
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRefreshLayout = (BGARefreshLayout) findViewById(R.id.refresh_layout);
        mLv = (ListView) findViewById(R.id.lv);
        mAdddatas();//自定義資料
        initBGARefreshLayout();
    }
    public void mAdddatas(){
        datas = new ArrayList<>();
        for (int i = 'A'; i < 'z'; i++) {
            datas.add("使用的假資料:---->" + (char) i);
        }
        mLv.setAdapter(new ArrayAdapter<String>(this, android.R
                .layout.simple_list_item_1, datas));
    }
    public void initBGARefreshLayout(){
        // 為BGARefreshLayout設定代理
        mRefreshLayout.setDelegate(this);
        // 設定下拉重新整理和上拉載入更多的風格     引數1:應用程式上下文,引數2:是否具有上拉載入更多功能
        BGANormalRefreshViewHolder refreshViewHolder = new BGANormalRefreshViewHolder(this, true);

        refreshViewHolder.setPullDownRefreshText("往下拉!");
        refreshViewHolder.setRefreshingText("正在刷!");
        refreshViewHolder.setReleaseRefreshText("放開我!");
        // 為了增加下拉重新整理頭部和載入更多的通用性,提供了以下可選配置選項  -------------START
        // 設定正在載入更多時不顯示載入更多控制元件
        // mRefreshLayout.setIsShowLoadingMoreView(false);
        // 設定正在載入更多時的文字
        refreshViewHolder.setLoadingMoreText("數量變多");
        // 設定整個載入更多控制元件的背景顏色資源id
        //     refreshViewHolder.setLoadMoreBackgroundColorRes(R.color.colorPrimary);
        // 設定整個載入更多控制元件的背景drawable資源id
        //refreshViewHolder.setLoadMoreBackgroundDrawableRes(loadMoreBackgroundDrawableRes);
        // 設定下拉重新整理控制元件的背景顏色資源id
        //  refreshViewHolder.setRefreshViewBackgroundColorRes(refreshViewBackgroundColorRes);
        // 設定下拉重新整理控制元件的背景drawable資源id
        //    refreshViewHolder.setRefreshViewBackgroundDrawableRes(R.mipmap.ic_launcher);
        // 設定自定義頭部檢視(也可以不用設定)     引數1:自定義頭部檢視(例如廣告位), 引數2:上拉載入更多是否可用
//        View mheader=getLayoutInflater().inflate(R.layout.header,mRefreshLayout,false);
//        mRefreshLayout.setCustomHeaderView(mheader,true);
        // 可選配置  -------------END

        // 設定下拉重新整理和上拉載入更多的風格
        mRefreshLayout.setRefreshViewHolder(refreshViewHolder);
    }

    @Override
    public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
        mHandler.sendEmptyMessageDelayed(1, 3000);
    }

    @Override
    public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
        mHandler.sendEmptyMessageDelayed(2, 3000);
            return true;
        }

}
這個是最簡單的xml新增點選事件(正規開發不用,看上去很簡明)按鈕重新整理方法:
//    public void bottom1(View view){
//        mRefreshLayout.beginLoadingMore();//按鈕點選開始載入
//    }
//    public void bottom2(View view){
//        mRefreshLayout.beginRefreshing();//按鈕點選開始重新整理
//    }

activity_main.xml類:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<cn.bingoogolapple.refreshlayout.BGARefreshLayout
    android:layout_above="@+id/bottomlayout"
    android:id="@+id/refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
</cn.bingoogolapple.refreshlayout.BGARefreshLayout>
  <LinearLayout
      android:id="@+id/bottomlayout"
      android:layout_alignParentBottom="true"
      android:layout_width="match_parent"
      android:orientation="horizontal"
      android:background="#f0f"
      android:layout_height="30dp">
      <TextView
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="下面的欄目"/>
  </LinearLayout>
</RelativeLayout>

要實現功能還要依賴library庫,可以自己依賴BGA的庫.

連結:http://pan.baidu.com/s/1qY2AxPE 

相關推薦

基於better-scroll的重新整理載入

目錄 前言 專案中使用的截圖如下 封裝better-scroll 元件的使用 前言 本來想使用vux的scroller元件,但是看到官方說不在維護了,而且在提供的樣例裡面,雖然例子有可以自定義載入等待區域以及文字提示的內容,但是實際上卻沒有找到相關樣例程式碼,改來改去也改

IOS控制元件系列二---優雅的UITableView的MVC模式設計,支援自定義重新整理/載入檢視(含swift)

demo效果如下: 本小框架設計原則依舊按照之前的慣例: 1.擴充套件性好,程式碼不冗餘(整個重新整理的頭部與底部程式碼不超過300行)。 2.邏輯清晰。 3.回撥介面清晰。 4.移植性好。 對於擴充套件性本框架擴充套件點如下: 1.框架中的

快速整合Android實現重新整理載入

本文實現一分鐘快速整合BGARefreshLayout下拉重新整理和上拉載入的功能. 這個是簡單單功能的整合方法,詳細BGARefreshLayout請到github中的demo,這只是我簡化版快速整合. 重要的程式碼實現如下: MainActivity類: pub

Android中ListView重新整理載入效果實現

  在Android開發中,下拉重新整理和上拉載入更多在很多app中都會有用到,下面就是具體的實現的方法。 首先,我們自定義一個RefreshListView來繼承與ListView,下面是程式碼: package com.example.downrefresh; import

iOS開發-ios7重新整理 載入快速整合

                在ios7之前,一直在使用開源的EGO庫。但是,在使用過程中發現,普遍封裝得過於複雜、耦合性強,不利於整合到自己的專案中。另外,在ios7之後,一些原有的下拉重新整理,上提載入控制元件表現的就不是那麼出色了。除了可能出錯外,也不符合扁平化的風格。後來,在code4App上發現了

Android ListView 實現重新整理載入

1.簡介        無疑,在Android開發中,ListView是使用非常頻繁的控制元件之一,ListView提供一個列表的容易,允許我們以列表的形式將資料展示到介面上,但是Google給我們提供的原生ListView的控制元件,雖然在功能上很強大,但是在使用

Android scrollview中巢狀listview實現listview的重新整理載入

我們都知道在Android中scrollview和listview都能滑動,如果scrollview巢狀listview會出現一些問題,比如listview不能正常顯示item...但是在一些專案中,一些頁面內容比較多,需要在外面放一個scrollview,裡面還會巢狀li

Android自定義控制元件實戰——實現仿IOS重新整理載入 PullToRefreshLayout

         下拉重新整理控制元件,網上有很多版本,有自定義Layout佈局的,也有封裝控制元件的,各種實現方式的都有。但是很少有人告訴你具體如何實現的,今天我們就來一步步實現自己封裝的 PullToRefreshLayout 完美的解決下拉重新整理,上拉載入問題。  

react native自定義實現重新整理載入

1·定義元件 PageListView.js  /** * 上拉重新整理/下拉載入更多 元件 */ import React, { Component } from 'react'; import { Text, View, ListView, FlatList

android重新整理,載入

public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerview; private ArrayList<Integer> mList = new ArrayL

Android打造 ListView GridView等 通用的重新整理 自動載入的元件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

vue-scroller的使用 實現重新整理 載入初始效果

安裝vue-scroller npm i vue-scroller -D 在main.js中: import VueScroller from 'vue-scroller' Vue.use(VueScroller) &nbs

重新整理載入框架:android-Ultra-Pull-To-Refresh

下拉重新整理上拉載入框架:PtrClassicFrameLayout 1、一個優雅的框架實現下拉重新整理上拉載入,學習來源:點選開啟連結 2、如何使用: 2.1、在專案中引入: compile 'com.shizhefei:MVCHelper-UltraRefresh:1

MUI重新整理載入實現

DOM結構 <div id="refreshContainer" class="mui-content mui-scroll-wrapper"> <div class="hui-media-list mui-scroll"> <u

Android 列表重新整理載入分頁功能

手機app 列表頁很常用,當資料特別多的時候,為了更好地使用者體驗,需要進行分頁處理。那麼分頁功能怎麼做呢? 看如下核心程式碼 if (mPage == 1 && mList != null) { mList.clear();

Android 重新整理載入PullToRefresh

PullToRefresh 開發者可以使用 PullToRefresh 對各種控制元件實現下拉重新整理或者上拉載入以及可以自定義重新整理和載入部分的檢視。 目前支援:ScrollView,ListView,WebView,RecyclerView。 PullToRefresh的使用步驟

banner實現無限輪播+重新整理載入+ 時 listview 和輪播圖一起重新整理

//首先把所需要的依賴包匯入  gson jar包、imageLoader jar包、banner1.4.9jar包、design jar包,,,然後匯入library,新建專案,把library匯入專案中 //新增許可權 <uses-permiss

自個兒寫Android重新整理/載入控制元件

前段時間自己寫了一個能夠“通用”的,支援下拉重新整理和上拉載入的自定義控制元件。可能現如今這已經不新鮮了,但有興趣的朋友還是可以一起來看看的。 與通常的View配合使用(比如ImageView) 與ListView配合使用 與Recycl

Android ListView重新整理載入

把這兩天的心得記錄下來,以後用到不會忘。 先說下拉重新整理,下拉重新整理我們主要用到了android自帶v4jar包中的一個控制元件SwipeRefreshLayout,如果下面是xml檔案, 如果你在寫報錯的話,換一個最新的v4包就可以了。 <android

使用SwipeRefreshLayout和RecyclerView實現重新整理載入

效果圖: 檔案目錄 佈局檔案 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/