924

一部のアクティビティのタイトルバーを非表示にしたいと考えています。問題は、すべてのアクティビティにスタイルを適用したため、テーマを単純に設定できないこと@android:style/Theme.NoTitleBarです。

スタイルの親としてNoTitleBarテーマを使用すると、すべてのアクティビティからタイトル バーが削除されます。

ノータイトルスタイルのアイテムをどこかに設定できますか?

4

38 に答える 38

1091

メソッドでこれを行いますonCreate()

//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//set content view AFTER ABOVE sequence (to avoid crash)
this.setContentView(R.layout.your_layout_name_here); 

thisを指しActivityます。

于 2010-04-07T09:35:12.260 に答える
541

あなたはあなたのAndroidManifest.xml:を変更することができます

<activity android:name=".MainActivity"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

またはandroid:theme="@android:style/Theme.Black.NoTitleBar"、フルスクリーンアクティビティが必要ない場合に使用します。

注:以前に「デフォルト」ビューを使用したことがある場合は、親クラスもからAppCompatActivityに変更する必要がありますActivity

于 2010-09-20T14:56:40.063 に答える
403

私は今、次のことをしました。

一般的なスタイルからすべてを継承したスタイルを宣言し、titleBar を無効にしました。

<style name="generalnotitle" parent="general">
    <item name="android:windowNoTitle">true</item>
</style>

これで、タイトル バーを非表示にするすべてのアクティビティにこのスタイルを設定して、アプリケーション全体のスタイルを上書きし、他のすべてのスタイル情報を継承できるようになりました。そのため、スタイル コードに重複はありません。

スタイルを特定のアクティビティに適用するには、タグを開いAndroidManifest.xmlて次の属性を追加します。activity

<activity
    android:theme="@style/generalnotitle">
于 2010-04-13T08:15:29.667 に答える
168

this.requestWindowFeature(Window.FEATURE_NO_TITLE);タイトル バーが一時的に表示されてから消えるので、私は好きではありません。

android:theme="@android:style/Theme.NoTitleBar"また、新しいデバイスのユーザーが慣れている 3.0 以降の Holo の変更をすべて失ってしまったので、これも好きではありません。だから私はこの解決策に出くわしました。

res/valuesフォルダーで、styles.xmlというファイルを作成します(まだ存在しない場合)。そのファイルに次のコードを配置します。

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>

次に、別のstyles.xmlファイルを使用してres/values-v11を作成します (これも既に存在している可能性があります)。そのファイルに次のコードを配置します。

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>

また、4.0 以降をターゲットにしている場合は、さらに別のstyles.xmlファイルを含むres/values-v14フォルダーを作成します (はい、既に存在する可能性があります)。そのファイルに次のコードを配置します。

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>

最後に、これらすべてのファイルを作成したら、コードを追加できるAndroidManifiest.xmlファイルを開きます。

android:theme="@style/Theme.NoTitle"

タイトルを付けたくないアクティビティのアクティビティ タグ、またはアプリケーション全体に適用する場合はアプリケーション タグに追加します。

これで、ユーザーはデバイスのバージョンに関連付けられたテーマを、希望する画面レイアウトで取得できます。

PS値をに変更しandroid:theme="@style/Theme.FullScreen"ても同じ効果がありますが、通知バーも削除されます。

于 2013-01-02T01:06:23.987 に答える
108

開発者の Android ページに記載されているように、タイトル バーは 2 つの方法で削除できます。

manifest.xmlファイル内:

  1. applicationアプリ内のすべてのアクティビティから削除する場合は、次を追加します。

    <application android:theme="@android:style/Theme.Black.NoTitleBar">
    
  2. または特定のアクティビティの場合:

    <activity android:theme="@android:style/Theme.Black.NoTitleBar">
    
于 2012-03-20T11:48:25.557 に答える
67

正解はおそらく、Activity だけを拡張するのではなく、ActionbarActivity を拡張しないことです。


まだアクションバーアクティビティを使用している場合、これは機能しているようです:

@Override
protected void onCreate(Bundle savedInstanceState) {          
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide(); //<< this
    setContentView(R.layout.activity_main);
}

これもうまくいくようです:

styles.xml:

   <style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
          <item name="android:windowNoTitle">true</item>   <!-- //this -->     
   </style>

スコット・ビッグスが書いたようにできます。このような作品。ただし、テーマはありません。つまり、設定メニューの背景は透明です。

ただ変える

public class MainActivity extends ActionBarActivity {

Activity または FragmentActivity へ

public class MainActivity extends Activity  {

ただし、マテリアル デザインを使用して見栄えを良くし、アクションバーを削除することはできません

  1. アプリケーションのアイコンを設定
  2. アクションバーの色をデザインに合わせて設定します。
  3. 設定メニューにアイコンを設定
  4. さらにアイコンを追加する (上部のボタン)

これは、マテリアル デザインと互換性のあるアクションバーのスタイリングの例です。

于 2015-01-16T02:49:53.083 に答える
44

を使用すると、this.requestWindowFeature(Window.FEATURE_NO_TITLE)ユーザーは、アクティビティが開始されたときの起動アニメーション中に、タイトル バーを一瞬だけ見ることができますonCreate@android:style/Theme.Black.NoTitleBar以下のように使用すると、起動アニメーション中にタイトル バーが表示されなくなります。

<activity 
    android:name=".MainActivity" 
    android:label="My App"
    android:theme="@android:style/Theme.Black.NoTitleBar"
    android:screenOrientation="portrait">

上記の例は明らかに既存のアプリケーションテーマを上書きします。既存のテーマがある場合はそれに追加<item name="android:windowNoTitle">true</item>します。

于 2011-10-17T07:04:32.883 に答える
34

これらの高評価の回答をすべて使用しようとすると、アプリが常にクラッシュしました。(「@android:style」と関係があると思いますか?)

私にとって最良の解決策は、次を使用することでした。

android:theme="@style/Theme.AppCompat.NoActionBar"

ヘッダー/タイトル バーはもうありません。アプリ全体または特定のアクティビティだけで必要な場合は、<application>...</application>またはに配置するだけです。<activity>...</activity>

于 2016-06-10T21:46:07.737 に答える
18

以下のようにテーマを作成します。

 <!-- Variation on the Light theme that turns off the title -->
<style name="MyTheme" parent="android:style/Theme.Black">
    <item name="android:windowNoTitle">true</item>
</style>
于 2012-12-21T10:59:16.130 に答える
15

AppThemeから定義を置き換える場合は、Style.xml のスタイルを変更するだけで済みます。DarkActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

AndroidManifast.xml で定義された AppTheme

于 2016-06-02T16:29:18.407 に答える
14

onCreateメソッドで、次のスニペットを使用します。

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
于 2012-11-20T18:49:57.160 に答える
13

このコードをJavaファイルで使用できます

ビューを設定またはロードする前に、この行を追加します

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main);
于 2014-06-08T05:15:51.177 に答える
11

このスタイルを style.xml ファイルに追加します

 <style name="AppTheme.NoActionBar">
     <item name="windowActionBar">false</item>
     <item name="windowNoTitle">true</item>
 </style>

その後、以下のように、タイトルバーを表示したくない特定のアクティビティで、このスタイル名を androidManifest.xml に参照します。

<activity android:name=".youractivityname"
     android:theme="@style/AppTheme.NoActionBar">
</activity>
于 2016-10-13T19:16:37.407 に答える
9

サポート ウィジェット ツールバー v7 を使用しています。したがって、タイトルを削除または非表示にするには、これを記述する必要があります。

Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

//Remove¡ing title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
于 2016-05-13T20:51:28.167 に答える
8

または、任意の時点でタイトル バーを非表示/表示する場合:

private void toggleFullscreen(boolean fullscreen)
{
    WindowManager.LayoutParams attrs = getWindow().getAttributes();
    if (fullscreen)
    {
        attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    else
    {
        attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    getWindow().setAttributes(attrs);
}
于 2013-04-26T07:02:42.080 に答える
7

私の場合、Android Studio 2.1 を使用していて、コンパイル SDK のバージョンが 6.0 の場合は、manifest.xml ファイルに移動して、次のコードを変更します。

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lesterxu.testapp2">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

そして、ここにスニップシュートがあります(ハイライトコードを参照): ここに画像の説明を入力

于 2016-05-11T14:14:50.033 に答える
6

最初の答えは角閃石です。ここに私の説明があります:追加:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

oncreate() メソッドで。

前:

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);

(setContentView の直前ではありません) これを行わないと、forceclose が発生します。+1 この回答。

于 2015-02-21T10:04:28.713 に答える
5

このエラーが発生する理由は 2 つあります。

1。Window フラグは内部で既に設定されているsuper.onCreate(savedInstanceState);ため、次の順序でコマンドを使用することをお勧めします。

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);      

super.onCreate(savedInstanceState);

二。TitleBar 内に [戻る/上へ] ボタンがあります。これは、現在のアクティビティが別のアクティビティの階層的な子であることを意味します。この場合、このコード行をコメント アウトするか、onCreateメソッド内から削除することをお勧めします。

getActionBar().setDisplayHomeAsUpEnabled(true);
于 2012-09-25T08:33:26.313 に答える
5

ユーザーYaW​​とDoug Paulの言うことを実行する場合は、setContentView を呼び出す前にウィンドウ機能を設定する必要があることに注意する必要があります。そうでない場合は、例外が発生します。

于 2012-08-06T19:53:10.013 に答える
5

これは、完全なコードがどのように見えるかです。android.view.Window のインポートに注意してください。

package com.hoshan.tarik.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
    }
}
于 2015-03-31T07:41:54.040 に答える
3

アプリのテーマの親タグを「Theme.AppCompat.Light.NoActionBar」に変更するだけです

于 2016-02-08T07:29:04.653 に答える
2

ええと、タイトルなしなど、 XMLの個々のアクティビティにテーマを適用できます。つまり、アプリケーションタグから取り出し、タグ宣言を開いて、目的のアクティビティタグに配置します。

于 2010-04-09T19:15:33.760 に答える
2

この投稿で言及されていますが、誰も明示的に対処していないため、おそらくこれで時間を節約できます. あなたが私のようで、ActionBarActivity を拡張する 1 つのルート クラスを拡張する複数のクラスがある場合、そのアクティビティを NoTitleBar/NoActionBar に設定しようとするとエラーが発生することはすぐにはわかりません。具体的には次のとおりです。

「このアクティビティで Theme.AppCompat テーマ (または子孫) を使用する必要があります」

拡張をアクティビティに変更することで、これを修正できます。

于 2015-07-20T22:51:17.960 に答える
1

@YaW のソリューションを使用して、アクティビティからタイトルと通知を削除しました。ただし、ダイアログを表示すると、タイトルと通知が表示されます。したがって、これをダイアログに適用するには、以下に示すようにダイアログをサブクラス化します。

public class MyDialog extends android.app.Dialog{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        super.onCreate(savedInstanceState);

        setContentView(R.layout.mydialog);
    }    
}
于 2015-09-18T21:39:40.143 に答える
0

私の場合、私のアクティビティは AppCompatActivity を拡張していました。

class MyActivity: AppCompatActivity(){
    ...
}

したがって、他の答えはうまくいきませんでした。私はこれをしなければなりませんでした:

class MyActivity: AppCompatActivity(){
    this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
}

そしてそれはうまくいきます!

アクティビティが AppCompatActivity を拡張する場合は、requestWindowFeature(...) の前に「support」を追加するだけです。

于 2021-09-23T19:37:46.037 に答える
0

Android Studio ドキュメントの WindowManager.LayoutParams には、FLAG_FULLSCREEN が「ウィンドウ フラグ: このウィンドウが表示されている間、すべての画面装飾 (ステータス バーなど) を非表示にする」と記載されています。したがって、このフラグはコンテンツを画面全体に表示しません。

于 2015-05-20T12:25:14.267 に答える