我想改变方向,但我有两个不同的xml,一个用于肖像,另一个用于横向。屏幕上会显示相同的信息,但会移动使用一些空格。如果我这样做:
android:configChanges="keyboardHidden|orientation"
它只会在同一个xml中从纵向更改为横向。
我该如何改变?
答案 0 :(得分:1)
将您的视图设置为类变量:
private TextView yourView;
将以下内容添加到onCreate()
方法:
if (savedInstanceState != null) {
((TextView)findViewById(R.id.yourview)).restoreState(savedInstanceState);
}
并在保存实例状态时添加覆盖以保存状态
@Override
protected void onSaveInstanceState(Bundle outState) {
yourView.saveState(outState);
}
最后:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
您应该可以使用此管理配置更改...
答案 1 :(得分:0)
在您的活动中,覆盖此方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
更改方向时会触发此操作。您可以找到使用参数的方向。
答案 2 :(得分:0)
这不是android的工作方式。如果您想要一个不同的纵向/横向布局,您必须让系统为您处理配置更改并加载相应的布局xml。
答案 3 :(得分:0)
覆盖活动中的onConfigurationChanged()
方法。检查当前方向并使用setContentView()
设置适当的内容视图。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.getConfiguration() == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(landscape_layout);
} else {
setContentView(portrait_layout);
}
initViews();
}
答案 4 :(得分:0)
把它放在你的清单
中android:configChanges="orientation|keyboardHidden|screenSize|uiMode"
它解决了我和你的问题:)