期望
想要实现横竖屏切换时,可以在onConfigurationChanged做一些逻辑处理!
问题
无论怎么旋转手机,都无法在onConfigurationChanged接收到!很是郁闷呀!
解决 (我在第三步这里遇到的问题!)
1)AndroidManifest.xml中添加configChanges配置
<activity android:name=".MainActivity"
android:configChanges="orientation|keyboard|layoutDirection|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2)重写onConfigurationChanged方法
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
Log.d(TAG, "onConfigurationChanged: 切换成横屏了!");
} else {
Log.d(TAG, "onConfigurationChanged: 切换成竖屏了!");
}
}
3)是否【允许自动旋转/方向锁定】的系统的配置,对于这个onConfigurationChanged是有影响的
如果小米note3、华为mate 30 pro,如果不允许自动旋转的话,这个onConfigurationChanged就监听不到
日常问题记录,随时更新!