web-dev-qa-db-ja.com

Android ActionBarなしのアクティビティ

アプリに異なるActivitiesがありますが、それらすべてでAction Barは必要ありません。無効にする方法が見つかりません。 main_activity.xmlに適用する属性を見つけようとしましたが、これまでのところ何も見つかりませんでした。誰かが私を助けてくれますか?

55
Lutscha

ハハ、私も少し前にその時点で立ち往生しているので、少なくとも私のために働いた解決策であなたを助けることができてうれしいです:)

あなたがしたいことは、values/styles.xml内で新しいスタイルを定義することです

<resources>
    <style name = "AppTheme" parent = "Android:Theme.Holo.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

    <style name = "NoActionBar" parent = "@Android:style/Theme.Holo.Light">
        <item name = "Android:windowActionBar">false</item>
        <item name = "Android:windowNoTitle">true</item>
    </style>

</resources>

NoActionBarスタイルのみが魅力的です。最後に、AndroidManifest.xmlでアプリケーションのテーマとして設定する必要があるため、次のようになります。

<application
    Android:allowBackup = "true"
    Android:icon = "@drawable/ic_launcher"
    Android:label = "@string/app_name"
    Android:theme = "@style/NoActionBar"   <!--This is the important line-->
    >
    <activity
    [...]

これがお役に立てば幸いです。

84
JRsz

これを行うには複数の方法があります。

1)Androidマニフェストのテーマを変更します

Application要素の下に、テーマタグがあります。これと交換してください-

Android:theme="@Android:style/Theme.NoTitleBar"

AppCompatを使用している場合は、@Android:style/Theme.AppCompat.NoActionBarを使用します。

これにより、すべてのアクティビティのテーマが設定されます。特定のアクティビティでアクションバーが必要ない場合は、アクティビティコンテナでテーマを設定します。つまり、

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

スタイルでAndroid:theme="@Android:style/Theme.NoTitleBar"テーマを設定し、後で使用することもできます。


2)カスタムテーマを作成する

これをres/values/styles.xmlに追加します

<style name="NoActionBar" parent="@Android:style/Theme.Holo.Light">
     <item name="windowActionBar">false</item>
     <item name="Android:windowNoTitle">true</item>
</style>

そして、それをマニフェストでアクティビティのテーマとして設定します。

<activity Android:theme="@style/NoActionBar" ... />

3)アクションバーを動的に削除する

このコードをonCreateメソッドに入れますコンテンツビューを設定する前に-

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();

サポートライブラリを使用している場合は、getSupportActionBar()を使用します。

68
Confuse

誰もがここにActionBarを隠す古い方法を投稿していることを考えると、AppCompatサポートライブラリのスタイル内でそれを実装する適切な方法です。まだお持ちでない方は、これをお勧めします。

ActionBarを単に削除する

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

Appcompatサポートライブラリを使用している場合は、これがActionBarを非表示にして、フルスクリーンにするか、レイアウト内のツールバーへの実装を開始する最も簡単で推奨される方法です。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Your Toolbar Color-->
    <item name="colorPrimary">@color/primary</item>

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">@color/primary_dark</item>

    <!-- colorAccent is used as the default value for colorControlActivated,
     which is used to tint widgets -->
    <item name="colorAccent">@color/accent</item>

    <!-- You can also set colorControlNormal, colorControlActivated
     colorControlHighlight, and colorSwitchThumbNormal. -->
</style>

次に、ツールバーの色を変更します

<Android.support.v7.widget.Toolbar
    Android:id=”@+id/my_awesome_toolbar”
    Android:layout_height=”wrap_content”
    Android:layout_width=”match_parent”
    Android:minHeight=”?attr/actionBarSize”
    Android:background=”?attr/primary” />

最後のメモ:ActivityクラスはAppCompatActivityを拡張する必要があります

public class MainActivity extends AppCompatActivity {

<!--Activity Items -->

}
10
Eugene H

AppCompatを使用している場合は、次のようにAndroidManifest.xmlでアクティビティを宣言します。

<activity
    Android:name=".SomeActivity"
    ...
    Android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
8
atablash

マニフェストを開き、属性theme = "@ style/Theme.AppCompat.Light.NoActionBar"をactionbarなしで必要なアクティビティに追加します。

<application
    ...
    Android:theme="@style/AppTheme">
    <activity Android:name=".MainActivity"
        Android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        ...
    </activity>
</application>

here と書かれているように、ActionBarActivityからActivityに継承を変更することもできます。

更新

良い解決策は ここ

@Override
protected void onCreate(Bundle savedInstanceState) {
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_main);
}
4
CoolMind

Res/value/style.xmlで取得するデフォルトのスタイル

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

アクティビティタグのように、以下のように、

Android:theme="@style/AppTheme.NoActionBar"
2
Prashant Mhetre

私はできるだけ簡単にそれを見せようとします:

Android MAINIFESTファイルでフルスクリーンアクティビティを宣言:

<activity
            Android:name=".GameActivity"
            Android:label="@string/title_activity_game"
            Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen">

Androidスタジオ(使用している場合)で、アクティビティXMLファイル(この例ではactivity_game.xml)をデザイナーで開き、テーマを選択します(デザイナーの携帯電話の上にある小さな円のボタンをクリック)。左側のテーマ、次にNoTitleBar.Fullscreen。

それが役立つことを願っています!

2
user4009281

ほとんどのアクティビティにアクションバーを持たせる場合は、おそらくデフォルトテーマから基本テーマを継承します(これはデフォルトでAndroid St​​udioによって自動的に生成されます)。

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

次に、バーレスアクティビティに特別なテーマを追加します。

<style name="AppTheme.NoTitle" parent="AppTheme">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="actionBarTheme">@null</item>
    </style>

私にとっては、actionBarTheme@ nullに設定することが解決策でした。

最後に、マニフェストファイルでアクティビティを設定します。

<activity ... Android:theme="@style/AppTheme.NoTitle" ... >
2
Claude

Styles.xmlでデフォルトのテーマを見つけてください

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

そして、このように親を変更します

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