【问题标题】:App won't run in landscape应用程序不会横向运行
【发布时间】:2017-08-10 03:27:24
【问题描述】:

今天我开始尝试针对横向模式优化我的应用程序。但是我无法让我的应用程序在横向模式下运行,我没有启用强制纵向模式的设置。

我以占位符屏幕为例。

我还仔细检查了我的 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();
....

我错过了什么?

【问题讨论】:

  • 检查你是否关闭了设备上的自动旋转。
  • 可能设备上禁用了自动旋转?
  • Manifest 中有哪些相关设置?
  • 你的意思是这样? :
  • 在此特定模拟器实例上运行的其他应用程序是否正确旋转?

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


【解决方案1】:

尝试将activity 方向设置为sensor

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

【讨论】:

    【解决方案2】:

    在您的 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)
            {
    
            }
        }
    

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      不要问我为什么,但是横向模式突然起作用了。我按下了右侧菜单上的屏幕旋转按钮。当它回到风景中时,它突然起作用了。以前这样做过,所以不知道为什么它突然开始工作。

      我没有更改我的代码、主题、清单或布局中的任何内容...

      【讨论】:

        猜你喜欢
        • 2017-01-17
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        • 2019-03-18
        • 1970-01-01
        相关资源
        最近更新 更多