中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PullToRefresh的使用

發布時間:2020-06-28 06:44:03 來源:網絡 閱讀:1651 作者:向往宇宙 欄目:移動開發

PullToRefresh的使用
 
下載地址:https://github.com/chrisbanes/Android-PullToRefresh
   
   1、改變控件頂部和底部是否可拉動。
      1)、在代碼中調用控件的  setMode(Mode.BOTH)方法;
      2)、在配置文件中引用 xmlns:ptr="http://schemas.android.com/apk/res-auto" 命名空間,
            設置ptr:ptrMode="both"
   
   2、改變控件頂部和底部拖動時顯示的圖標和文字。
      1)、在代碼中設置
              //上端
            ILoadingLayout loadingLayout = mPullRefreshListView.getLoadingLayoutProxy(true,false);
            loadingLayout.setPullLabel("下拉刷新");
            loadingLayout.setRefreshingLabel("正在刷新...");
            loadingLayout.setReleaseLabel("放開刷新...");
            loadingLayout.setLoadingDrawable(getResources().getDrawable(R.drawable.default_ptr_flip));
            
            //下端
            loadingLayout = mPullRefreshListView.getLoadingLayoutProxy(false,true);
            loadingLayout.setPullLabel("上拉加載");
            loadingLayout.setRefreshingLabel("正在加載...");
            loadingLayout.setReleaseLabel("放開加載...");
            loadingLayout.setLoadingDrawable(getResources().getDrawable(R.drawable.default_ptr_flip));
      
      2)、在配置文件中引用 xmlns:ptr="http://schemas.android.com/apk/res-auto" 命名空間,
                     設置ptr:ptrMode="ptrDrawable"
            
    3)、到library中values查看attr.xml提供的配置文件提供的屬性。
        1)、 在代碼中提供設置屬性的方法在ILoadingLayout類中。
        2)、在配置文件中設置屬性引用命名空間,提供屬性名稱。如:ptr:ptrMode="both"
        
     4)、實例代碼
        public final class PullToRefreshListActivity extends ListActivity {
        
            static final int MENU_MANUAL_REFRESH = 0;
            static final int MENU_DISABLE_SCROLL = 1;
            static final int MENU_SET_MODE = 2;
            static final int MENU_DEMO = 3;
        
            private LinkedList<String> mListItems;
            private PullToRefreshListView mPullRefreshListView;
            private ArrayAdapter<String> mAdapter;
        
            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_ptr_list);
        
                mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
        
                mPullRefreshListView.setMode(Mode.BOTH);
                // Set a listener to be invoked when the list should be refreshed.
                
            /*    mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
                    @Override
                    public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                        String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),
                                DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);
        
                        // Update the LastUpdatedLabel
                        refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
        
                        // Do work to refresh the list here.
                        new GetDataTask().execute();
                    }
                });
        
                // Add an end-of-list listener
                mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
        
                    @Override
                    public void onLastItemVisible() {
                        Toast.makeText(PullToRefreshListActivity.this, "End of List!", Toast.LENGTH_SHORT).show();
                    }
                });*/
                
                /**
                 * 設置兩端加載時顯示的內容
                 */
                //上端
                ILoadingLayout loadingLayout = mPullRefreshListView.getLoadingLayoutProxy(true,false);
                loadingLayout.setPullLabel("下拉刷新");
                loadingLayout.setRefreshingLabel("正在刷新...");
                loadingLayout.setReleaseLabel("放開刷新...");
                //loadingLayout.setLoadingDrawable(getResources().getDrawable(R.drawable.default_ptr_flip));
                
                //下端
                loadingLayout = mPullRefreshListView.getLoadingLayoutProxy(false,true);
                loadingLayout.setPullLabel("上拉加載");
                loadingLayout.setRefreshingLabel("正在加載...");
                loadingLayout.setReleaseLabel("放開加載...");
                //loadingLayout.setLoadingDrawable(getResources().getDrawable(R.drawable.default_ptr_flip));
                
                mPullRefreshListView.setOnRefreshListener(new OnRefreshListener2<ListView>() {
        
                    @Override
                    public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                        System.out.println("down");
                        new GetDataTask().execute();
                    }
        
                    @Override
                    public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                        System.out.println("up");
                        new GetDataTask().execute();
                    }
                });
                
                ListView actualListView = mPullRefreshListView.getRefreshableView();
        
                // Need to use the Actual ListView when registering for Context Menu
                registerForContextMenu(actualListView);
        
                mListItems = new LinkedList<String>();
                mListItems.addAll(Arrays.asList(mStrings));
        
                mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems);
        
                /**
                 * Add Sound Event Listener
                 */
                SoundPullEventListener<ListView> soundListener = new SoundPullEventListener<ListView>(this);
                soundListener.addSoundEvent(State.PULL_TO_REFRESH, R.raw.pull_event);
                soundListener.addSoundEvent(State.RESET, R.raw.reset_sound);
                soundListener.addSoundEvent(State.REFRESHING, R.raw.refreshing_sound);
                mPullRefreshListView.setOnPullEventListener(soundListener);
        
                // You can also just use setListAdapter(mAdapter) or
                mPullRefreshListView.setAdapter(mAdapter);
                actualListView.setAdapter(mAdapter);
            }
        
            private class GetDataTask extends AsyncTask<Void, Void, String[]> {
        
                @Override
                protected String[] doInBackground(Void... params) {
                    // Simulates a background job.
                    try {
                        Thread.sleep(4000);
                    } catch (InterruptedException e) {
                    }
                    return mStrings;
                }
        
                @Override
                protected void onPostExecute(String[] result) {
                    mListItems.addFirst("Added after refresh...");
                    mAdapter.notifyDataSetChanged();
        
                    // Call onRefreshComplete when the list has been refreshed.
                    mPullRefreshListView.onRefreshComplete();
        
                    super.onPostExecute(result);
                }
            }
        
            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                menu.add(0, MENU_MANUAL_REFRESH, 0, "Manual Refresh");
                menu.add(0, MENU_DISABLE_SCROLL, 1,
                        mPullRefreshListView.isScrollingWhileRefreshingEnabled() ? "Disable Scrolling while Refreshing"
                                : "Enable Scrolling while Refreshing");
                menu.add(0, MENU_SET_MODE, 0, mPullRefreshListView.getMode() == Mode.BOTH ? "Change to MODE_PULL_DOWN"
                        : "Change to MODE_PULL_BOTH");
                menu.add(0, MENU_DEMO, 0, "Demo");
                return super.onCreateOptionsMenu(menu);
            }
        
            @Override
            public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
        
                menu.setHeaderTitle("Item: " + getListView().getItemAtPosition(info.position));
                menu.add("Item 1");
                menu.add("Item 2");
                menu.add("Item 3");
                menu.add("Item 4");
        
                super.onCreateContextMenu(menu, v, menuInfo);
            }
        
            @Override
            public boolean onPrepareOptionsMenu(Menu menu) {
                MenuItem disableItem = menu.findItem(MENU_DISABLE_SCROLL);
                disableItem
                        .setTitle(mPullRefreshListView.isScrollingWhileRefreshingEnabled() ? "Disable Scrolling while Refreshing"
                                : "Enable Scrolling while Refreshing");
        
                MenuItem setModeItem = menu.findItem(MENU_SET_MODE);
                setModeItem.setTitle(mPullRefreshListView.getMode() == Mode.BOTH ? "Change to MODE_FROM_START"
                        : "Change to MODE_PULL_BOTH");
        
                return super.onPrepareOptionsMenu(menu);
            }
        
            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
        
                switch (item.getItemId()) {
                    case MENU_MANUAL_REFRESH:
                        new GetDataTask().execute();
                        mPullRefreshListView.setRefreshing(false);
                        break;
                    case MENU_DISABLE_SCROLL:
                        mPullRefreshListView.setScrollingWhileRefreshingEnabled(!mPullRefreshListView
                                .isScrollingWhileRefreshingEnabled());
                        break;
                    case MENU_SET_MODE:
                        mPullRefreshListView.setMode(mPullRefreshListView.getMode() == Mode.BOTH ? Mode.PULL_FROM_START
                                : Mode.BOTH);
                        break;
                    case MENU_DEMO:
                        mPullRefreshListView.demo();
                        break;
                }
        
                return super.onOptionsItemSelected(item);
            }
        
            private String[] mStrings = { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
                    "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
                    "Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
                    "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
                    "Allgauer Emmentaler" };
            }
       
     5)、配置文件
         <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
        
            <com.handmark.pulltorefresh.library.PullToRefreshScrollView
                xmlns:ptr="http://schemas.android.com/apk/res-auto"
                android:id="@+id/pull_refresh_scrollview"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                <!-- 背景色 -->
                ptr:ptrAdapterViewBackground="#660"
                <!-- 拉動模式,兩端拉動 -->
                ptr:ptrMode="both">
                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:padding="8dp"
                    android:text="@string/filler_text"
                    android:textSize="16sp" />
            </com.handmark.pulltorefresh.library.PullToRefreshScrollView>
        </LinearLayout>

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

成武县| 马鞍山市| 夹江县| 乌拉特中旗| 石棉县| 吉木乃县| 祁门县| 梁山县| 长武县| 酉阳| 怀柔区| 太白县| 阳朔县| 文山县| 含山县| 平阴县| 合水县| 五莲县| 晋中市| 稻城县| 西吉县| 砀山县| 延川县| 伽师县| 临朐县| 荃湾区| 航空| 凉山| 凤城市| 穆棱市| 景德镇市| 鄂托克前旗| 郓城县| 苏尼特左旗| 湘乡市| 永登县| 昌图县| 庆阳市| 渑池县| 汾西县| 玛多县|