8

私はすべてのプロジェクトでandroid.support.designを使用していますが、今日は最新バージョンに更新しました

com.android.support:デザイン:22.2.1

私のプロジェクトがクラッシュしたので、それは悪い考えでした

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
java.util.ArrayList.get(ArrayList.java:308)
android.support.design.widget.TabLayout.getTabAt(TabLayout.java:407)
android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:585)

デバッグを行った後、このメソッドに問題があることがわかりました。

 public void setupWithViewPager(@NonNull ViewPager viewPager) {
    PagerAdapter adapter = viewPager.getAdapter();
    if(adapter == null) {
        throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set");
    } else {
        this.setTabsFromPagerAdapter(adapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(this));
        this.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
        if(this.mSelectedTab == null || this.mSelectedTab.getPosition() != viewPager.getCurrentItem()) {
            this.getTabAt(viewPager.getCurrentItem()).select();// ERROR On my code I'm used empty adapter 
        }

    }
}

しかし、lib の以前のバージョン 22.2.0 では、すべて正常に動作していました。

    public void setupWithViewPager(ViewPager viewPager) {
    PagerAdapter adapter = viewPager.getAdapter();
    if(adapter == null) {
        throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set");
    } else {
        this.setTabsFromPagerAdapter(adapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(this));
        this.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
    }
}

誰がそれを行い、誰が罰せられる可能性がありますか?

Android サポート デザイン ライブラリの開発者を探すのを手伝ってください。

4

2 に答える 2