Android Activity without ActionBar

2019-01-21 07:20发布

I have different Activities in my App and in all of them I do not want the Action Bar. I cannot find how to disable it. I have tried to find an attribute to apply it to the main_activity.xml but so far I did not find anything. Can somebody help me please?

10条回答
何必那么认真
2楼-- · 2019-01-21 07:58

Considering everyone is posting older ways of hiding the ActionBar here is the proper way of implementing it within styles for AppCompat support library. Which I highly suggest moving toward if you haven't already.

Simply removing the ActionBar

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

If you are using the appcompat support libraries, this is the easiest and recommended way of hiding the ActionBar to make full screen or start implementing to toolbar within your layouts.

<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>

Then to change your toolbar color

<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” />

Last note: Your Activity class should extend AppCompatActivity

public class MainActivity extends AppCompatActivity {

<!--Activity Items -->

}
查看更多
爷、活的狠高调
3楼-- · 2019-01-21 08:02

If you're using AppCompat, declare your activity in AndroidManifest.xml as follows:

<activity
    android:name=".SomeActivity"
    ...
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
查看更多
我只想做你的唯一
4楼-- · 2019-01-21 08:05

I will try to show it as simple as i can:

DECLARE FULL SCREEN ACTIVITY IN ANDROID MAINIFEST file:

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

Now in Android studio (if you using it) open your Activity xml file ( in my example activity_game.xml) in designer and select theme (above mobile phone in designer click button with small circle) and then select Mainfest Themes on the left side and then NoTitleBar.Fullscreen.

Hope it will help!

查看更多
趁早两清
5楼-- · 2019-01-21 08:06

open Manifest and add attribute theme = "@style/Theme.AppCompat.Light.NoActionBar" to activity you want it without actionbar :

<application
    ...
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        ...
    </activity>
</application>
查看更多
霸刀☆藐视天下
6楼-- · 2019-01-21 08:07

There are multiple ways of doing this.

1) Change the theme in Android Manifest

Below the Application element, you will find theme tag. Replace it with this one -

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

If you are using AppCompat, use @android:style/Theme.AppCompat.NoActionBar.

This will set the theme for all activities. If you don't need the action bar in a specific acitivity, then set the theme in the activity container, ie

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

You may also set android:theme="@android:style/Theme.NoTitleBar" theme in the styles and use it later on.


2) Create a Custom Theme

Add this in 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>

and then set it as your activity's theme in Manifest:

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

3) Dynamically Remove the Action Bar

Put this code in the onCreate method before setting content view -

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

If you are using the support library use getSupportActionBar().

查看更多
叼着烟拽天下
7楼-- · 2019-01-21 08:07

Please find the default theme in 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>

And change parent this way

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
查看更多
登录 后发表回答