經過反射改變ViewPager的初始化頁面index

有時候咱們想要在展現viewPager的同時就讓它滑動到指定的頁面,咱們能夠用viewPager.setCurrentItem(index)
然而這種作法依然會加載position爲0的頁面再跳轉到指定的頁面。
今天發現能夠經過反射來改變viewPager的初始化index,親測6.0有效。
代碼以下:code

//初始化adapter,FileLookUpAdapter繼承自FragmentStatePagerAdapter
        adapter = new FileLookUpAdapter(getSupportFragmentManager());
        
        Field field = null;
        try {
            field = ViewPager.class.getDeclaredField("mRestoredCurItem");
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }
        field.setAccessible(true);
        try {
        //index 爲咱們想要的第一次就展現的頁面index
            field.set(viewPager, index);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        
        //setAdapter
        viewPager.setAdapter(adapter);
相關文章
相關標籤/搜索