0

FragmentStatePagerAdapterの内部クラスがあります。

public class SectionsPagerAdapter extends FragmentStatePagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            /*
             * Here we are going to return the correct type of fragment for each
             * of the pages
             */
            switch(position){
            case 0:
                return MainListFragment.init(position); 
            case 1:
                return MainListFragment.init(position);
            case 2:
                return MainListFragment.init(position); 
            default:
                return MainListFragment.init(position); 
            }
        }

        @Override
        public int getCount() {
            // Show 3 total pages.
            return 3;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            Locale l = Locale.getDefault();
                    //breakpoint set here
            switch (position) {
            case 0:
                return getString(R.string.title_main_feed).toUpperCase(l);
            case 1:
                return getString(R.string.title_settings).toUpperCase(l);
            case 2:
                return getString(R.string.title_about).toUpperCase(l);
            }
            return null;
        }
    }

そして、いくつかの非常に奇妙な動作があります。デバッガーで何が起こっているのかにいくつかのブレークポイントを設定しました。これが私が見つけたものです。アプリを初めて起動すると、ブレークポイントに 1 回ヒットし、次に「続行」を押してもう一度ヒットし、基本的に、アプリが読み込まれる前に switch ステートメントを 2 回押します。アプリが読み込まれると、2 ページ目 (ページ 1、または中央) のみにリスト データが表示されます。

もう 1 つの奇妙な点は、スクロールしてもposition変数が正しくないことです。0 から開始して 1 に移動すると、ブレークポイントにヒットし、位置が 2 になり、2 にスクロールすると、ブレークポイントにヒットしません。1 に戻り、ブレークポイントにヒットしましたが、位置は 1 ではなく 0 です。

何が起こっているのか、すべてのページでリスト データを取得できない理由について混乱しています。誰かが何が起こっているのかを明確にすることができますか?

基本的に、私がやりたいことは、現在のページに応じて異なるリスト ビューを表示することです。私はこれを正しい方法で行っていますか、それとも別の方法がありますか。

4

0 に答える 0