应用程序不会在横向上运行

时间:2017-03-18 16:11:32

标签: android landscape-portrait android-7.1-nougat

今天我开始尝试优化横向模式的应用程序。但我无法让我的应用程序在横向模式下运行,没有任何设置我已启用强制肖像。

我以占位符屏幕为例。

我还仔细检查了我的AVD中的自动旋转是启用。我在每个AVD都有这个问题。

在我的清单中这样声明。

<activity
        android:name=".PlaceholderActivity"
        android:theme="@style/AppTheme.NoActionBar" />

我的布局看起来像这样。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_material_light"
android:orientation="vertical"
android:animateLayoutChanges="true" >

<View
    android:id="@+id/icon"
    android:layout_width="350dp"
    android:layout_height="350dp"
    android:layout_centerInParent="true"
    android:background="@drawable/feedyr_full" />

<ProgressBar
    android:id="@+id/progress"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/icon"
    android:layout_centerHorizontal="true"
    android:visibility="visible" />

<include
    layout="@layout/helper_error"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/icon"
    android:layout_centerHorizontal="true" />

</RelativeLayout>

我的主题看起来像这样。

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:colorButtonNormal">@color/colorAccent</item>

    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>

我班上也没有什么能强迫人像

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_placeholder);

    config = FirebaseRemoteConfig.getInstance();
    model = Model.getInstance();
....

My placeholder screen on Nexus 9 running 7.1

我错过了什么?

3 个答案:

答案 0 :(得分:1)

尝试将activity方向设为sensor

<activity
    android:name=".PlaceholderActivity"
    android:theme="@style/AppTheme.NoActionBar" 
    android:orientation="sensor"/>

答案 1 :(得分:1)

在AndroidManifest中

<activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar" />

和MainActivity.java

public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if (newConfig.orientation== Configuration.ORIENTATION_PORTRAIT)
        {

        }
        else  if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
        {

        }
    }

希望它有所帮助

答案 2 :(得分:0)

不要问我为什么,但突然景观模式有效。我按下右侧菜单上的屏幕旋转按钮。当它回到景观中时它突然起作用了。之前这样做不知道为什么它突然开始起作用了。

我的代码,主题,清单或布局中没有任何改变......

AVD in landscape mode