Android ViewPager 應該及技巧

來源:互聯網
上載者:User

Android ViewPager 應該及技巧

1. android 中的ViewPager 功能類似於iOS中的scrollView,實現最基本的頁面的左右滑動功能。該類存在於Google的相容包裡面,所以在引用時記得在BuilldPath中加入“android-support-v4.jar”

2. 在實現中ViewPager需要綁定一個適配器(Adapter),在適配器中返回頁面view的個數及具體的形式。這個就類似於iOS中tableView的實現,必須實現UITableView代理中的 numberOfCell 跟CellForRow,一個用於返回共有多少資料,另一個用於返回每一條具體的資料。

3. ViewPager 通常與Fragment一起使用。在ViewPager中加入多fragment(頁面) 來實現左右的滑動。

4.看個最簡單的ViewPager的代碼: 假設我們現在已經有三個Fragment ,他們的背影顏色分別為red,green, blue。


1) 我們在xml 檔案中添加一個ViewPager,代碼如下

      

2)在activtiy .java中使用此ViewPager.現在我們有了ViewPager了,還需要一個Adapter,通常我們繼承FragmentPagerAdapter來自訂我們的Adapter以便重寫返回個數及Item的函數。在Adaoter 中定義一個數組,裡面加入上面的Fragment(如果想動態增加留個增加的介面就ok),代碼如下

    public static class TabAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener {        private   ArrayList frg = new ArrayList();        public TabAdapter(FragmentManager fm) {            super(fm);            CountingFragment f1 = new CountingFragment();            frg.add(f1);            CursorFragment   f2 = new CursorFragment();            frg.add(f2);            FragmentPagerSupport f3 = new FragmentPagerSupport();            frg.add(f3);            notifyDataSetChanged();        }        @Override        public Fragment getItem(int i) {            return frg.get(i);        }        @Override        public int getCount() {            return frg.size();        }        @Override        public void onPageScrolled(int i, float v, int i2) {        }        @Override        public void onPageSelected(int i) {        }        @Override        public void onPageScrollStateChanged(int i) {        }    }}
為了監聽ViewPager 移動變化的事件,我們實現了ViewPager.OnPageChangeListener ,它的實現三個函數看名字就知道什麼意思了。getCount 返回ViewPager 的Fragment的數量,getItem 返回每個位置的Item。


3) 關聯ViewPgaer跟Adapter

        mViewPager = (ViewPager)findViewById(R.id.mViewPager);        mTabAdapter = new TabAdapter(getSupportFragmentManager());        mViewPager.setAdapter(mTabAdapter);

getSupportFragmentManager 返回一個Fragment的管理器,是FragmentPagerAdapter的要求參數。

經過上面的步驟我們就實現了一個簡單的可以左右滑動的ViewPager。


一些屬性的介紹


當我們有需要用按鍵去控制ViewPager的左右滑動時,使用屬性
boolean arrowScroll(int direction) 向前翻頁參數傳1,向後翻頁參數傳2
讓ViewPager不響應滑動的切換事件,如讓嵌套的子ViewPager不響應滑動切換事件,只是響應點擊切換事件,將滑動事件交給父ViewPager處理。,使用

boolean canScrollHorizontally(int direction)Check if this view can be scrolled horizontally in a certain direction.

@Override      public boolean canScrollHorizontally(int direction) {          // TODO Auto-generated method stub          return false;      }  






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.