requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY)
を使用してActionBarオーバーレイを作成できることを知っています
そして画面にステータスバーを切り替えたり表示したりできます(FLAG_FULLSCREEN
とFLAG_FORCE_NOT_FULLSCREEN
を切り替えることで)。
これはうまく機能します。ただし、ステータスバーを切り替えたときにレイアウトを移動したくありません。
次を使用して、ステータスバーを(透過的ではありませんが)コンテンツを「オーバーレイ」できることを知っています。
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
これは、ActionBarを使用すると、ActionBarが半分カットオフされるという(予想される)結果を除いて、うまく機能します。基本的に、その半分はステータスバーの下にあります。
この場合、ステータスバーの高さで「アクションバーを下に移動」する方法はありますか?
最悪の場合、レイアウト内にあるカスタムビューでこれを実行できることはわかっていますが、これは実行しません(ActionBarの恩恵を受けたい)。
ありがとう!
どうやら、これはジェリービーンズで行うことができます。 googleは、APIドキュメントに2つの例を含めています。ここにリンクがあります: http://developer.Android.com/reference/Android/view/View.html#setSystemUiVisibility%28int%29
概要:ビューでsetSystemUiVisibility
を使用して、可視性を切り替えます(jellybean +の場合)。
それは完璧ではありませんが、これが私があなたが望むものを達成した方法です:
OnCreateの場合:
getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN、WindowManager.LayoutParams.FLAG_FULLSCREEN);
次に:
private void hideStatusBar() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
}
private void showStatusBar() {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
私はまた、次のような活動のスタイルを持っています:
<style name="readingStyle" parent="@style/Theme.Sherlock">
<item name="Android:windowActionBarOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
</style>
ステータスバーが表示されるとアクティビティがシフトダウンしますが、あまり目立たないと思います。
このメソッドをonCreate()メソッドアクティビティに配置します。
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
参照: リンク
マニフェストで成功しない理由
Android:theme="@Android:style/Theme.Black.NoTitleBar"
ステータスバーがなく、アクションバー用のスペースが多いよりも?