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了。

  • 相关阅读:
    Something broke! (Error 500)——reviewboard
    linux内核--自旋锁的理解
    I.MX6 mkuserimg.sh hacking
    I.MX6 DNS 查看、修改方法
    I.MX6 android mkuserimg.sh
    I.MX6 AW-NB177NF wifi HAL 调试修改
    I.MX6 wpa_supplicant_8 编译问题
    I.MX6 MAC Address hacking
    I.MX6 MAC地址修改
    I.MX6 U-boot imxotp MAC address 写入
  • 原文地址:https://www.cnblogs.com/loveflycforever/p/4881918.html
Copyright © 2011-2022 走看看