zoukankan      html  css  js  c++  java
  • 禁止屏幕旋转并同时解决以至于导致Activity重启的方法

    1.禁止屏幕旋转
    在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation属性。

    //landscape(横向)portrait(纵向)
    android:screenOrientation="landscape"
    

    2.避免屏幕旋转时重启Activity
    Android中每次切换屏幕方向时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。
    首先,在AndroidManifest.xml文件中重新定义方向(给每个需要的Activity加上android:configChanges属性)。

    <activity android:name="app.activity.MyActivity"
              android:label="@string/app_name"
              android:screenOrientation="landscape"
              android:configChanges="keyboardHidden|orientation">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

    同时,在需要的Activity中重写onConfigurationChanged(Configuration newConfig)方法。

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
     
        if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) {
            //横向
            setContentView(R.layout.file_list_landscape);
        } else {
            //纵向
            setContentView(R.layout.file_list);
        }
    }
    

    这样在屏幕旋转时就不会重启Activity了。

  • 相关阅读:
    luogu P1451 求细胞数量
    P1443 马的遍历
    luogu P1194 买礼物
    codevs 4919 线段树练习4
    printf的实型
    printf的整型
    scanf
    printf
    c++常用函数
    字符类型C++(ascll码表)
  • 原文地址:https://www.cnblogs.com/loveflycforever/p/4881918.html
Copyright © 2011-2022 走看看