我正在尝试android:configChanges="keyboardHidden|orientation|screenSize"
在我的清单中使用,以便在VideoView
发生配置更改时不会丢失我的状态。这意味着我需要自己在配置中选择布局。我遇到的问题是,当我第一次初始化要在其中使用的视图时onCreate
,这里:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activity_make_photo_video_land);
} else if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.activity_make_photo_video);
}
}
它选择正确的布局。但是当我需要像这里一样调整配置更改的布局时:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activity_make_photo_video_land);
} else if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.activity_make_photo_video);
}
}
它不使用相同的布局实例,而是重新加载它,这让我VideoView
变黑了。然后我无法按任何按钮。
有没有办法重用初始布局?我试图将这样的视图设置setContentView(R.layout.activity_make_photo_video_land);
为一个Activity activity
对象,但 IDE 不允许我这样做,它说Activity is incompatible with void
。因为如果我能获得对该视图的引用,那么我就可以重用它。还是有一种我没有看到的更简单的方法?
谢谢。