我在活动中添加了此代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.activityView);
}
并在清单文件中添加了这一行
android:configChanges="orientation|keyboardHidden|screenSize"
活动没有重新启动,但布局未正确加载:并非所有组件都显示,并且按钮单击列表器从未被调用...
我为所有布局使用相同的名称文件。但取决于方向不同的内容。
我甚至尝试过不同的名字:activityView_port / activityView_land并将代码更改为:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activityView_port);
} else {
setContentView(R.layout.activityView_land);
}
}
但没有任何工作......
任何帮助将不胜感激:)
答案 0 :(得分:0)
setContentView(R.layout.activityView_land);
请不要在配置更改时调用上述方法。相反,您可以尝试使用一些标志来确定必须设置的布局并调用
reCreate()
方法。
If don't want to destroy the current instance, better you can try removing and adding of views with animation.