2018/03/07に Android P(9.0、API28に相当するもの?)のプレビュー版がリリースされました。
https://developer.android.com/preview/overview.html
■リリーススケジュール
昨年のAndroid Oとほぼ同じです。
※Oのときは、pre4まででした。
■対象端末
Pixel, Pixel XL, Pixel 2, Pixel 2 XL
日本で正式に発売されたものはないようです。
#なので、今調べたところで、、、というのは、気にしてはダメです。
新しいものは調べたくなるじゃないですか。
■少しだけ調べました。
以下を調べました。
Screen rotation changes
https://developer.android.com/preview/behavior-changes.html#screen-rotation-changes
説明、読みました。
google翻訳も使いました。
だけど・・・
わからない。。。
Screen Orientationの項目も新規に追加されているわけではなさそう。
ネットを探してところ、回転操作に変更があるそう。
https://www.androidpolice.com/2018/03/08/android-p-feature-spotlight-rotation-can-temporarily-locked-landscape-changes/
で、確かめました。
以下のように設定したところ、挙動が変わりました。
星印の箇所が変更点
・Activityに、screenOrientation=”fullUser”を設定
・ビルド、エミュレータ起動、アプリインストール
・エミュレータの”Auto-rotate screen”をオフ
・エミュレータを回転
・アプリは回転しない
★下のバーに、回転アイコンが表示される
★回転アイコンをタップ
★アプリの回転処理が行われる
→回転検知のonConfigurationChangedもこのタイミングで呼ばれていました。
→これまで、端末側で回転ロックしていた場合、アプリも回転できなかったのが、
端末の設定に依存せず、アプリ側で縦横の対応ができるようです。
“fullUser”は、”userLandscape”や”userPortrait”でも同じかも。
#あと、確認時、適当なレスポンシブなWebviewを表示していたのですが、
onConfigurationChangedの頭でブレイク張っていたところ、
onConfigurationChangedで止めていても、レイアウトは中途半端に回転されていました。
※細かくは調べていないですが、作りが悪いだけなのかもです。
fullUserの公式の説明のgoogle翻訳(具体的なことがわからない)
===
自動回転および回転ロックでは、アクティビティを縦または横(およびその逆)にレンダリングできます。 ポートレイトとランドスケープの両方のレイアウトをサポートすることを期待してください。
回転ロックのユーザーには、180度になることが多い、逆の方向にロックするオプションが与えられます。
====
以下、試したサンプルコードの抜粋です。
AndroidManifest.xml
<application 〜〜〜省略〜〜〜 <activity android:name=".SubActivity" android:label="@string/title_activity_sub" android:screenOrientation="fullUser" android:theme="@style/AppTheme.NoActionBar""></activity"> 〜〜〜省略〜〜〜 </application>
SubActivity.java
画面回転を検出するメソッドをオーバーライド
@Override public void onConfigurationChanged(Configuration newConfig) { switch (newConfig.orientation) { case Configuration.ORIENTATION_PORTRAIT: // 縦長 // 処理 Log.d("SubActivity","ORIENTATION_PORTRAIT"); break; case Configuration.ORIENTATION_LANDSCAPE: // 横長 // 処理 Log.d("SubActivity","ORIENTATION_LANDSCAPE"); break; default: break; } super.onConfigurationChanged(newConfig); }
コメント