直播系統app原始碼,垂直,水平無限迴圈滑動

zhibo系統開發發表於2021-10-15

直播系統app原始碼,垂直,水平無限迴圈滑動實現的相關程式碼

首先, 無限迴圈和網上的大多數的做法一樣,將 PagerAdapter 裡的 getCount() 返回最大的數字。Integer.MAX_VALUE


 @Override
    public int getCount() {
        return Integer.MAX_VALUE; // fragments.size();
    }
 在 destroyItem()裡不要返回父類的 destroyItem , 如下程式碼 :
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
android.util.Log.d(TAG, " destroyItem " + position);
int pos = position % fragments.size();
container.removeView((View) object);
// super.destroyItem(container, position, object);
}

在 instantiateItem() 裡, 為了防止滑動Fragment時反覆的銷燬建立 , 先判斷是否新增 , 已經新增的直接返回

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
    int pos = position % fragments.size();
        Fragment fragment = fragments.get(pos);
        
        android.util.Log.d(TAG, " instantiateItem " + pos);
        
        if(!fragment.isAdded()) {
            FragmentTransaction ft = fragmentManager.beginTransaction();
            ft.add(fragment, fragment.getClass().getSimpleName());
            ft.commit();
            fragmentManager.executePendingTransactions();
        }
 
        if(fragment.getView().getParent() == null) container.addView(fragment.getView()); // 為viewpager增加布局
        return fragment.getView();
    }


以上就是 直播系統app原始碼,垂直,水平無限迴圈滑動實現的相關程式碼,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2837550/,如需轉載,請註明出處,否則將追究法律責任。

相關文章