Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android ViewPager 應該及技巧

Android ViewPager 應該及技巧

編輯:關於Android編程

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;  
    }  






  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved