我为横向模式创建了适用于所有不同屏幕大小的Android布局资源文件,例如小型,大型,中型和超大型,但是,当我运行应用程序时,它不能在横向模式下工作,只有一半按钮,屏幕上缺少图像。
我还在android Manifest文件中包含了以下行。
android:configChanges="orientation|screenSize|keyboardHidden"
我已将以下内容包含在所有actvity java文件中,但仍无效。
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(getApplicationContext(), "Portrait Mode", Toast.LENGTH_SHORT).show();
}else if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(getApplicationContext(), "Landscape Mode", Toast.LENGTH_SHORT).show();
}
Android会将其切换为横向模式,但屏幕中的元素显示不正确。我创建了一个横向布局资源文件,然而,问题是Android不使用此布局,因为它在纵向和横向模式下使用相同的布局。
请告知我如何让Android了解何时使用横向和纵向模式。
答案 0 :(得分:4)
改变这个:
android:configChanges="orientation|screenSize|keyboardHidden"
到此:
android:configChanges="screenSize|keyboardHidden"
使用第一个语句,你基本上告诉android不要在屏幕旋转时重新创建活动!!!
答案 1 :(得分:2)
在配置方法中使用它:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Intent intent = getIntent();
finish();
startActivity(intent);
}