ViewPagerFragments args(System.out.println()和TextView的行为方式不同)

时间:2016-03-31 09:18:36

标签: java android android-fragments android-viewpager

所以我在ViewPager中创建了一个Fragements,下面是我的部分代码: (System.out.println(mNum)不打印实际值但TextView是。例如,当从左到右滑动片段时,在第二个片段中,它打印1但是当从右向左滑动时它打印2,尽管TextView正确地显示它两种情况。 来自Android.Developers http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mNum = getArguments().getInt("num");
            viewPager=(ViewPager)getActivity().findViewById(R.id.pager);
        }

        /**
         * The Fragment's UI is just a simple text view showing its
         * instance number.
         */
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
            View tv = v.findViewById(R.id.text);
            ((TextView)tv).setText("Fragment #" + mNum);
            System.out.println(mNum);
            return v;
        }

1 个答案:

答案 0 :(得分:0)

使用viewPager时: 让我们说你在屏幕1,屏幕2也被viewPager加载到内存中,但它不可见。由于屏幕2片段已实例化,因此您将在“System.out.println(mNum);”中获得屏幕2的输出。

了解更多信息setOffscreenPageLimit