19

ActionBarSherlockを使用していて、アプリケーションのタイトルバーを非表示にしようとしていますが、それを実行するたびに、NullPointerExceptionアクセス時ActionBarにタイトルバーを削除/非表示にするにはどうすればよいですか?アクションバーのタイトルについては言及していないことに注意してください。アクションバーの上にあるタイトルバーを参照しています。Android2.3デバイスでアプリケーションを実行しています。

以下は私のコードです:(私のクラスは拡張されSherlockFragmentActivityます。)

super.onCreate(savedInstanceState);
setTheme(R.style.Theme_Sherlock);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
ActionBar actionbar = getSupportActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //I get the NullPointerException here.

//...

setContentView(R.layout.tab_navigation);
4

10 に答える 10

32

次のコード行を追加して、タイトルバーを非表示にします。

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayShowHomeEnabled(false);

お役に立てれば :)

于 2012-12-20T07:33:22.500 に答える
19

すべてのタイトルバーを非表示にし、アクションバーのみを保持するには、次のコードを使用します。

final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);

それは私のために働いた

于 2013-08-07T09:21:48.487 に答える
8

私はこれに対する答えを探していました。1つの解決策が見つかりました。

actionBar = getActionBar();
actionBar.hide();

上記のスニペットは、タブのタイトルとスライダーを削除します。それが役に立てば幸い。

于 2014-01-28T05:39:21.160 に答える
4

これで解決策を見つけました。でテーマを宣言するAndroidManifest.xmlと、タイトルバーが自動的に消えます。ただし、コードで宣言された場合にのみ機能しAndroidManifest.xml、コードでは機能しない理由はわかりません。

NullPointerExceptionの理由は、上位バージョン(ICS以降)とActionBar同義であるためです。TitleBar互換性ライブラリとを使用することにより、を非表示にすることはActionBarSherlock、を非表示にTitleBarすることも意味しActionBarます。

以下は、Sherlockのテーマを使用するようにアプリケーションを設定する方法です:(アプリケーションのタグに追加する必要があります)

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

コードのタイトルバーを非表示にする方法を知っている場合は、私の回答を自由に変更して、回答を含めてください。そして、もし誰かがそれがマニフェストファイルでのみ機能し、コードでは機能しない理由を説明できればいいのですが。:)

于 2012-11-23T04:56:58.013 に答える
1

ActionBarSherlockからtitleBarを文法的に表示/非表示にするには、この回答を参照してください。

android:タイトルバーを隠す

于 2013-08-18T17:26:09.013 に答える
0

Arciの答えは完全には正しくありません。テーマのドキュメントを読むと、次のことがわかります。

テーマは、アプリケーション全体またはアクティビティごとにマニフェストで定義する必要があります。を呼び出す前に、各アクティビティのコードでテーマを定義することもできますsuper.onCreate(Bundle)。これは、「Sherlock」アクティビティ基本クラスの1つから拡張し、アクションバーを使用する予定のすべてのアクティビティに対して実行する必要があります。

つまり、元のコードの最初の2行を入れ替えるだけで十分です。

setTheme(R.style.Theme_Sherlock);
super.onCreate(savedInstanceState);
...
于 2013-03-26T10:09:46.873 に答える
0

私も同じ問題を抱えていました。これらの答えはどれもうまくいきませんでした。アクションバーが読み込まれる直前に、タイトルバーが表示されていました。

マニフェストでActivityテーマをNoActionBarに設定する必要がありました。

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

次に、setContentView()の直前にテーマをアクティビティ内に戻します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setTheme(R.style.Theme_Custom);
    setContentView(R.layout.activity_home);
}

これでもカスタムテーマが読み込まれ、アクティビティが読み込まれたときにタイトルバーが表示されなくなりました

于 2014-02-09T20:32:45.780 に答える
0

Xamarinを使用している場合。以下からご利用いただけます。

ActionBar.Hide();
于 2014-09-23T16:53:08.297 に答える
-2

それを試してみてください:

setTheme(R.style.Theme_Sherlock_NoActionBar);
于 2013-05-21T06:47:27.993 に答える
-2
    <activity android:name=".xxxxxActivity"
              android:theme="@style/Theme.Sherlock.NoActionBar"/>
于 2013-07-26T03:10:30.070 に答える