在一个Activity中,我们称其为MasterActivity,我只想在横向模式下加载媒体播放的细节片段.准备就绪后,媒体将自动启动.
主从流程设置:我有两个xml,activity_master和activity_master.xml(land).标识为“ detail_container”的容器视图仅位于景观xml中.具有细节容器的landscape xml的目的是在同一屏幕上显示宽度大于900的主细节.
在onCreate()中,这是我通过检查“ detail_container”是否存在来确定屏幕方向的方式,如下所示:
if (findViewById(R.id.detail_container) != null) {
// The detail container view will be present only in the
// large-screen layouts (res/values-w900dp).
// If this view is present, then the
mTwoPane = true;
}
以及在活动的OnCreate()中,当活动处于两个窗格模式(大屏幕布局上的风景)时,我具有以下代码来自动加载片段
if (mTwoPane) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.detail_container,
someFragment.newInstance(MEDIA_URI))
.commit();
}
问题:
当我垂直开始活动时,该片段未加载(预期).
当我在横向启动活动时,将加载(预期)片段.
在屏幕旋转时,片段被破坏(预期,播放停止并且仅在onDestory()中释放资源);
问题是当我在横向中开始活动但将其旋转到垂直方向时,片段重新启动,并且媒体播放再次开始(意外).
我的目标:我希望片段在大屏幕设备上处于横向时自动加载,在设备旋转时,片段不应再次加载.
编辑:在垂直模式下,片段不应自动加载,用户将单击主活动,打开明细活动,并且明细活动将承载明细片段.
我应该怎么做?先感谢您
额外信息:测试物理设备是运行Android 5.0 API 21的7英寸平板电脑,模拟器中也存在此问题.