1. InfiniteViewPager fine tuned. 2. Fix NPE in DragAndDropListview

1) #40637	InfiniteViewPager 頁面閃動問題
將 onPageSelected() 內作 loop 的動作移至收到 SCROLL_STATE_IDLE 時做（動畫結束後在重新設定正確 page position）

2) #40292 InfiniteViewPager - Refactor
 - 1) 在 InfiniteViewPager 設定開啓 ViewPagerAdapter(List, true), 但需要註冊 OnInfiniteViewPagerPageChangeListener 才能真正 call 到 looping 方法, 覺得有點不直覺,因為就算不需要 listener callback 還是要註冊 lister 才能有 looping 效果
 - - 在 InfinitViewPager 初始化時建立 OnInfiniteViewPagerPageChangeListener initOnInfiniteViewPagerPageChangeListener();

- 2) 設定InfiniteViewPager時, ViewPager裡的ArrayList會新增前後各一個object, 例如有頁面list 1 2 3, 設定為looping後, list變成 3 1 2 3, 當不做任何設定時, 進到的第一個page會是 3, 需要在自行call setCurrentItem(0), 才能使進去的頁面是第一個頁面
- - setAdpater() 後判斷是否為 loop，再設定目前頁面 setCurrentItem(0);

3) Trac #42138 - Fix NPE when the size of the list adapter is just one.
當 adapter count = 0 時，不生成 expand view.