web-dev-qa-db-ja.com

android:theme = "@ Android:style / Theme.NoTitleBar.Fullscreen"はアプリケーションレベルで機能しますが、アクティビティレベルでは機能しません。どんな手掛かり?

MyNoStatusBarActivity.Javaというアクティビティのいずれかをフルスクリーンアクティビティにする必要があります。

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

<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);
}

これをすべて行うと、ステータスバーではなくタイトルバーが非表示になります。

また、アクティビティの代わりにアプリケーションレベルでマニフェストテーマを使用する場合、それは機能しますが、アプリのすべてのアクティビティに対しては必要ではありません。特定の1つのアクティビティのみにステータスバーなしが必要です。

ヘルプは本当にありがたいです。やった!

追伸:この動作はHoneycomb/ICSでは使用できなくなりました。 2.2と2.3にのみ必要です

[〜#〜] edit [〜#〜]

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

HTC WildFire-Sを使用しています、Android ver 2.3.5

15
Vikas Singh

マニフェストxmlで、アプリケーションレベルで次のようにします。

<application
    ...
    Android:theme="@Android:style/Theme.NoTitleBar" >
</application>

フルスクリーンにしたいアクティビティにこれを入れてください:

<activity

     Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" >
     ...
</activity>

OnCreateのすべてのsetWindowsFeatureまたはsetFlagメソッドを削除します。

29
Neoh

あなたはメインフェストから_Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen_を取り出すだけで、コードのみの呼び出しに固執する必要があると思う、それはいつも私のために働いています。どのテストデバイスを使用していますか?

また、これらの呼び出しが来るようにしてくださいbeforeこのように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」を検索してみて、必要と確信していないものはすべて削除し、そのようにテストします

6
Sam Clewlow

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

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

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

Android:theme="@style/AppTheme"

私のactivty xmlで:

Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
3
haelsite

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

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);
}
1
ahmedali

これで問題が解決します

マニフェスト@Android:style ...を@ style/..に変更するだけです.

<application
    ...
    Android:theme="@style/Theme.AppCompat.NoActionBar">
    ...
</application>
0
Juan Denis