android横竖屏切换
默认什么都不设置
放在注册清单的activity中 ↓↓↓
configChanges="orientation|keyboardHidden|screenSize"控制横竖屏生命周期不重走
android:screenOrientation="portrait" 指定横(landscape)竖(portrait)屏
↑↑↑
看懂了没呀 很清晰得啦
我就先举个例子吧 主方法有判断的 注册清单就不需要 android:screenOrientation="portrait" 这个啦
注册清单:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bwie.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".TarActivity"></activity> </application> </manifest>
主方法 MainActivity方法:
package com.bwie.myapplication; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { /** * 点击按钮 */ private Button but; //创建 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i("TAG", "---onCreate---创建"); initView(); } //获取控件 private void initView() { but = (Button) findViewById(R.id.but); but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,TarActivity.class); startActivity(intent); } }); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.i("TAG", "---onConfigurationChanged---"); int orientation = newConfig.orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE){ setContentView(R.layout.activity_main2); Log.i("TAG", "---横---"); } else if(orientation == Configuration.ORIENTATION_PORTRAIT){ setContentView(R.layout.activity_main); Log.i("TAG", "---竖---"); } } //启动 Activity创建或者从后台重新回到前台时被调用 @Override protected void onStart() { super.onStart(); Log.i("TAG", "---onStart---启动"); } // 继续--重新开始 Activity创建或者从被覆盖、后台重新回到前台时被调用 @Override protected void onResume() { super.onResume(); Log.i("TAG", "---onResume---继续--重新开始"); } // 暂停 Activity被覆盖到下面或者锁屏时被调用 @Override protected void onPause() { super.onPause(); Log.i("TAG", "---onPause---暂停"); } //停止 退出当前Activity或者跳转到新Activity时被调用 @Override protected void onStop() { super.onStop(); Log.i("TAG", "---onStop---停止"); } // 毁灭 退出当前Activity时被调用,调用之后Activity就结束了 @Override protected void onDestroy() { super.onDestroy(); Log.i("TAG", "---onDestroy---毁灭"); } // 重新开始 Activity从后台重新回到前台时被调用 @Override protected void onRestart() { super.onRestart(); Log.i("TAG", "---onRestart---重新开始"); } }