我有一个活动,其中有一个微调器。因为对于纵向和横向模式,我有不同的布局,所以我在onConfigurationChanged
方法
@Override
public void onConfigurationChanged(Configuration conf) {
super.onConfigurationChanged(conf);
setContentView(R.layout.layout);
initUI();
}
但问题是当我改变方向时,我的微调器被重新创建,所以如果微调器在纵向模式下打开它在横向模式下关闭。我的要求是:如果它在任何模式下打开,它应该在方向改变后打开你可以告诉我如何处理这种情况。
答案 0 :(得分:0)
尝试微调器的performClick()方法
答案 1 :(得分:0)
要停止重新创建Spinner,可以在清单文件中添加它
<activity android:name=".Activity_name"
android:configChanges="orientation|keyboardHidden">
但是通过添加此设置,您在旋转设备时不会自动更改布局,因此您必须像这样手动管理,
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.login_landscape);
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
setContentView(R.layout.login);
}
}
有关详情,请查看我的回答here
。
答案 2 :(得分:0)
一旦方向改变,就会调用destroy方法并再次重新创建活动。为避免销毁方法调用,您需要在清单文件中添加以下代码。但在这种情况下,只能使用一种布局,如果你想要重新放置你的内容,你需要动态地进行。
android:configChanges="orientation|keyboardHidden"