Android 如何控制从support.v4.app.ListFragment创建的ViewPager旋转?
请帮帮我 我有以下问题。 来自片段,该片段是从getSupportFragmentManager()创建ViewPager创建的Android 如何控制从support.v4.app.ListFragment创建的ViewPager旋转?,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,请帮帮我 我有以下问题。 来自片段,该片段是从getSupportFragmentManager()创建ViewPager创建的 FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); MyViewPager viewPager = MyViewPager.newInstance(); fragmentTransaction.add(R.id.container,
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
MyViewPager viewPager = MyViewPager.newInstance();
fragmentTransaction.add(R.id.container, viewPager);
fragmentTransaction.commit();
一切都好。但如果我旋转屏幕。
已触发onCreateActivity()
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
我得到以下错误
java.lang.IllegalArgumentException: No view found for id 0x7f0f0054 (com.jd:id/container) for fragment MyViewPager{41dcf008 #0 id=0x7f0f0054 My_FRAGMENT}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1059)
谢谢。在您的活动中,如果(saveInstanceBundle==null){添加您的viewpager片段}这样,它就不会添加到设备的每个旋转中。此外,我将调用replace而不是add.add-这是可以理解的。这是我测试的,我忘了删除。这是不可能改变的吗?只有重新创建?是的,我们将了解整个活动生命周期的工作方式,注意Gmail、YouTube、SMS应用程序等如何处理屏幕旋转。你可以做一些黑客操作,这样应用程序就不会重新创建所有内容,但这并不是我所推荐的。也就是说,在任何旋转中,旋转活动并随之旋转框架布局。我理解正确吗?没有黑客是不可能把只有一个片段?与框架布局无关。除此之外,你是对的。它必须重新创建所有内容,以确定如何绘制布局等。