左右滑動切換是透過viewPager來實現的,完整程式碼檢視附件。ViewPager的資料是透過PageAdapter來裝載的:
1. 呼叫adapter.notifyDataSetChanged(); 重新整理控制元件,但是要覆蓋PagerAdapter的getItemPosition方法,並返回 return POSITION_NONE;
2. 利用PagerAdapter的工作機制,就是PagerAdapter的執行順序, PagerAdapter作為ViewPager的介面卡,無論ViewPager有多少頁,PagerAdapter在初始化時也只初始化開始的2個View,即呼叫2次instantiateItem方法。而接下來每當ViewPager滑動時,PagerAdapter都會呼叫destroyItem方法將距離該頁2個步幅以上的那個View銷燬,以此保證PagerAdapter最多隻管轄3個View,且當前View是3箇中的中間一個,如果當前View缺少兩邊的View,那麼就instantiateItem,如裡有超過2個步幅的就destroyItem。
3. 每當Adapter呼叫instantiateItem時,運用View.setTag方法將該View標識。當需要更新這個View的資料時,透過呼叫ViewPager.findViewWithTag方法找到相應的View,然後更新View中的資料。
左右滑動切換是透過viewPager來實現的,完整程式碼檢視附件。ViewPager的資料是透過PageAdapter來裝載的:
1. 呼叫adapter.notifyDataSetChanged(); 重新整理控制元件,但是要覆蓋PagerAdapter的getItemPosition方法,並返回 return POSITION_NONE;
2. 利用PagerAdapter的工作機制,就是PagerAdapter的執行順序, PagerAdapter作為ViewPager的介面卡,無論ViewPager有多少頁,PagerAdapter在初始化時也只初始化開始的2個View,即呼叫2次instantiateItem方法。而接下來每當ViewPager滑動時,PagerAdapter都會呼叫destroyItem方法將距離該頁2個步幅以上的那個View銷燬,以此保證PagerAdapter最多隻管轄3個View,且當前View是3箇中的中間一個,如果當前View缺少兩邊的View,那麼就instantiateItem,如裡有超過2個步幅的就destroyItem。
3. 每當Adapter呼叫instantiateItem時,運用View.setTag方法將該View標識。當需要更新這個View的資料時,透過呼叫ViewPager.findViewWithTag方法找到相應的View,然後更新View中的資料。