我正在开展一个项目。我使用屏幕方向景观和肖像。我还使用android:configChanges="keyboardHidden|orientation|screenSize"
,以便在切换方向时不会刷新活动。
现在app无法从layout-port-> layout-land xml布局切换,因为我使用configChanges =“orientation”。
我可以从Landscape->切换纵向或纵向 - >横向,但它从两个方向显示布局端口xml,而不是从layout-port-> layout-land或land切换 布局陆地>布局端口
答案 0 :(得分:0)
在您的活动中添加此内容
inside of oncreate()
if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE)
setContentView(R.layout.land);
else if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT)
setContentView(R.layout.port);
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.land);
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
setContentView(R.layout.port);
}
}
答案 1 :(得分:0)
在AndroidManifest文件中,仅添加android:configChanges="orientation"
并删除要处理此方向的活动的其他两个
答案 2 :(得分:0)
试试这个
更改android:configChanges="keyboardHidden|orientation|screenSize"
到android:configChanges="orientation"
以及您的活动,覆盖onConfigurationChanged
methode
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//set your landscape layout
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
//the same for portrait layout
}
}
就是这样。