Androidのマルチウィンドウサポートでは、ステータスバーが表示されているかどうかをどのように検出しますか?たとえば、縦向きの場合は、トップアプリの場合はステータスバーが表示されますが、下位アプリの場合は表示されません。今、私がそこにいないステータスバーのためのスペースを作るので、私の意見は一番下の方が面白いです。Androidマルチウィンドウのサポート:ステータスバーが表示されているかどうかを検出していますか?
答えて
あなたは、システムのUIバーを意味すると仮定すると、ステータスバーすなわち、次の操作を行います。
View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
// Note that system bars will only be "visible" if none of the
// LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
// TODO: The system bars are visible. Make any desired
// adjustments to your UI, such as showing the action bar or
// other navigational controls.
} else {
// TODO: The system bars are NOT visible. Make any desired
// adjustments to your UI, such as hiding the action bar or
// other navigational controls.
}
}
を});ドキュメントから直接である
: https://developer.android.com/training/system-ui/visibility.html
マルチウィンドウ環境でこれをテストしましたか?私に文脈から外れているようです。 OPがどの程度コンテンツを相殺する必要があるかを判断するのに役立つのか分かりません。 –
ahemその正しい形式Googleドキュメント..それは実際にはGoogleによってすでにテストされています –
マルチウィンドウモードではシステムの表示は変更されません。私はフルスクリーンでもマルチウィンドウモードでも同じ応答を得ます。 – Justin
- 1. ツールチップが表示されているかどうかを検出しますか?
- 2. SSLがサポートされているかどうかを検出
- 3. JavaScript:Symbol.toStringTagがサポートされているかどうかを検出します。
- 4. キャンバス:ブラウザに表示されているかどうかを検出します。
- 5. オーバーレイが表示されているかどうかを検出する
- 6. アドレスバーがiOSで表示されているかどうかを検出する
- 7. Android Mは許可ダイアログが表示されているかどうかを検出します
- 8. Androidアプリがダウンロードされているかどうかを検出します。
- 9. デバイスがjQuery Mobileでサポートされているかどうかを検出する
- 10. ステータスバーがAndroidで表示されているかどうかを確認するには
- 11. ビューの一部が表示されていないかどうかを検出しますか?
- 12. Androidで、glBlendFuncSeparateOESがサポートされているかどうかを確認します。
- 13. Android:指のいずれかで領域が押されているかどうかを検出します。
- 14. 自動非表示のタスクバーが表示されているかどうかを検出する方法は?
- 15. iPadで網膜が表示されているかどうかをプログラムで検出しますか?
- 16. UIWebViewがwww.example.comリンクを表示しているかどうかを検出する
- 17. ステータスバーが隠れているかどうかを確認してください
- 18. divが表示されているかどうかを検出し、10秒後に色を変更します。
- 19. Unity3dとvuforiaがターゲットが表示されているかどうかを検出します
- 20. Android MediaPlayerが停止しているかどうかを検出しますか?
- 21. フラグメントがユーザーに表示されているかどうかを検出する方法はありますか?
- 22. jqueryは現在他のdivが表示されているかどうかを検出します
- 23. スピーカーが接続されているかどうかを検出しますか?
- 24. ルータがマルチキャストをサポートしているかどうかを検出する
- 25. フォームが表示される前にマウスボタンが既に押されているかどうかを検出
- 26. 現在のデバイス(UWP)で共有UIがサポートされているかどうかを検出します
- 27. ブラウザが完全CORSサポート付きXMLHttpRequestをサポートしていないかどうかを検出します
- 28. Android setPreviewSize、320x480と480x320の両方がサポートされているかどうかを検出するにはどうすればよいですか?
- 29. Django:チェックボックスがサブミットされているかどうかを検出します
- 30. MediaBrowserServiceCompatが実行されているかどうかを検出します。
は、プログラムステータスバー用のスペースをしないでください。 android:fitsSystemWindows、View.onApplyWindowInsets()、View.setOnApplyWindowInsetsListener()、Behavior.onApplyWindowInsets()...を使用します。これは難しい作業ですが、そこにあるステータスバーに頼ることはできません.Nの前には、WindowInsetsを使用してすべてを再実装する時間を取ることをお勧めします。 – natario
WindowInsetsはプログラムで情報を提供するために機能しますが、遅いです。実際のインセットが何であるかを知る前に、複数の呼び出しを受け取ります。 – Justin
再実装については、私はしたくありません。私は多くのビューといくつかの図書館に頼っています。彼らはすべてシステムウインドウに合ってうまくいくわけではありません。 Jelly Bean、KitKat、Marshmallowをすべてのメーカーに再実装してテストすることが最後の手段です。 – Justin