横向屏幕定向在Android工作室中不起作用

时间:2016-03-03 20:57:10

标签: android android-layout android-orientation android-screen-support

我为横向模式创建了适用于所有不同屏幕大小的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了解何时使用横向和纵向模式。

2 个答案:

答案 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);
    }