16

MyNoStatusBarActivity.javaフルスクリーン アクティビティと呼ばれるアクティビティの 1 つを作成する必要があります。

マニフェストに追加しました:

<activity
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:name=".MyNoStatusBarActivity"
    android:noHistory="true"
    android:label="@string/app_name"
    android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation">
    ...
</activity>

そしてonCreate私の活動の中で:

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

これをすべて行うと、STATUS バーではなく、TITLE バーが非表示になります。

また、アクティビティの代わりにアプリケーション レベルでマニフェスト テーマを使用すると、アプリのすべてのアクティビティで機能しますが、これは私が望んでいるものではありません。特定の 1 つのアクティビティに対してのみ、ステータス バーを表示しないようにしたい。

助けていただければ幸いです。サンクス!

PS : この動作は Honeycomb/ICS では使用できなくなりました。これは 2.2 と 2.3 だけに必要です

編集

SO の他のソリューションで言及されているすべての提案を試しましたが、まだ成功していません。テーマは、アプリケーション レベルに適用すると機能しますが、アクティビティ レベルでは機能しません。

私はHTC WildFire-S、android ver 2.3.5を使用しています

4

5 に答える 5

6

android:theme="@android:style/Theme.NoTitleBar.Fullscreenメインフェストから抜け出し、コードのみの呼び出しに固執する必要があると思います。それは常に私のために機能します。どのテストデバイスを使用していますか?

また、このように呼び出す前に、これらの呼び出しが来ることを確認してくださいsetContentView(R.layout.xxx)

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.xxx);

すべてのコードでandroid:theme宣言、つまりマニフェストと個々のレイアウトのxmlファイルを確認してください。アプリレベルでの宣言は機能しているように聞こえますが(後続のテーマ宣言をオーバーライドしているため)、アクティビティレベルのリクエストをオーバーライドしているものがあります。

プロジェクト全体で「android:theme」を検索し、必要かどうかわからないものをすべて削除して、その方法でテストしてください

于 2012-04-10T09:55:58.060 に答える
3

私はこれを私の活動に入れました:

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_splash);

そして、私のマニフェストでは変更しません。これは変更なしの私のものです:

android:theme="@style/AppTheme"

私のアクティビティxmlで:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
于 2013-09-04T07:12:11.197 に答える
1

これはトリックを行います:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_main);
}
于 2016-07-11T09:57:19.400 に答える