1

画面ロックアプリを作成しています。ユーザーがステータスバーを表示して他のアプリケーションを開くことができないように、ステータスバーを非表示にしたい。ステータスバーを非表示にできましたが、画面の上部からドラッグすると再び表示されます。

Android開発者からのAndroid 4.1以降のステータスバーの非表示に従っていました。

コードは次のとおりです。

View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

画面の上からスワイプしてもステータスバーが表示されないようにするにはどうすればいいですか?

4

1 に答える 1

0

これはリフレクションを使用して可能です。問題は山ほどあるけど。

通知パネルが開いているか、開いているかを確認する方法はありません。したがって、Activity#onWindowFocusChanged(boolean) に依存する必要があります。そして、ここから問題が始まります。

public void onWindowFocusChanged (boolean hasFocus)

Called when the current Window of the activity gains or loses focus. This is the best indicator of whether this activity is visible

ユーザーに。

まず、EXPAND_STATUS_BAR 権限が必要です。

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

から取得 通知パネルのプルダウンを無効にする

キットカット用

キットカット デバイスでフル スクリーン モードでステータスが表示されるのを防ぐことができなかったため、要件を満たすハックを作成しました。つまり、ステータス バーの展開をブロックしました。

それが機能するために、アプリは全画面表示になりませんでした。ステータス バーにオーバーレイを配置し、すべての入力イベントを消費しました。ステータスの拡大を防いだ。

  • customViewGroup は、任意のレイアウト (フレーム、相対レイアウトなど) を拡張し、タッチ イベントを消費するカスタム クラスです。
  • タッチ イベントを消費するには、ビュー グループの onInterceptTouchEvent メソッドをオーバーライドし、true を返します

キットカット以上については、この回答を参照してください

于 2016-05-21T06:03:07.923 に答える