如何永久禁用操作栏

Bij*_*iji 131 android android-actionbar

我可以使用以下代码隐藏蜂窝中的操作栏:

getActionBar().hide();
Run Code Online (Sandbox Code Playgroud)

但是当键盘打开并且用户复制粘贴任何内容时,操作栏会再次显示.如何永久禁用操作栏?

mon*_*ote 244

如果您正在使用Theme.Holo.Light并希望Theme.Holo.Light.NoActionBar在3.2之前的设备上使用该变体,您可以将其添加到您的styles.xml:

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> 
Run Code Online (Sandbox Code Playgroud)

然后将其设置为您的活动主题:

<activity android:theme="@style/NoActionBar" ... />
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案.不会像@ Biji的解决方案那样删除自定义主题. (8认同)
  • 这应该被接受为正确的答案! (4认同)
  • @ jesses.co.tt可以使用`<item name ="android:windowFullscreen"> true </ item>删除通知栏. (4认同)

Bij*_*iji 111

通过在Manifest中设置活动主题,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于在新ADT中实施AppCompat主题.我不认为打击这个 - 试图完全取消AppCompat是一个很好的解决方案!我试过@ monchote的方法,它对我有用 (2认同)

rsc*_*rsc 34

我在onCreate函数中使用以下代码:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();
Run Code Online (Sandbox Code Playgroud)

资料来源:https: //developer.android.com/guide/topics/ui/actionbar.html


sem*_*mih 30

<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >
Run Code Online (Sandbox Code Playgroud)

也许这对你有帮助

  • 请注意,此方法需要最小值为api 13级 (3认同)

Pio*_*ler 23

使用Android Studio默认生成的Activity超类是ActionBarActivity,然后,其他响应中的解决方案都不起作用.要解决只是改变超类:

public class xxxActivity extends ActionBarActivity{
Run Code Online (Sandbox Code Playgroud)

至:

public class xxxActivity extends Activity {
Run Code Online (Sandbox Code Playgroud)


noo*_*oob 12

我发现给出自定义主题而没有操作栏的最好方法是为我的项目中的所有活动创建一个SuperClass,并在其中onCreate()调用以下代码行 -

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)

它总是对我有用.这种方法中唯一的问题是,在启动应用程序时,您会看到操作栏只有几分之一秒(不是活动,完整的应用程序).


rez*_*e08 12

如果你想在没有actionBar和Title的情况下获得全屏.

在style.xml中添加它

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

并使用manifest.xml中的样式.

android:theme="@style/AppTheme.NoActionBar" 
Run Code Online (Sandbox Code Playgroud)


Raj*_*tra 10

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}
Run Code Online (Sandbox Code Playgroud)


小智 10

转到styles.xml将此DarkActionBar更改为NoActionBar

style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Run Code Online (Sandbox Code Playgroud)


Hoa*_*Huu 6

不要使用Holo主题,Actionbar将消失.这段代码适用于API 8+,支持lib v7:

<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

为您的活动设置该主题:

<activity android:theme="@style/NoActionBar" ... />
Run Code Online (Sandbox Code Playgroud)

在你的活动课上.

它甚至在扩展ActionBarActivity时也能工作.


小智 6

您可以简单地强制隐藏操作栏:

ActionBar  actionbar = getSupportActionBar();
actionBar.hide();
Run Code Online (Sandbox Code Playgroud)

只需使用默认主题即可。


san*_*oli 6

如果您只想要一个没有操作栏的主题,您可以使用'NoActionBar'变体,例如.如果你的基本主题如下

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后你可以使用

<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是如果你想保留主题的属性,即AppTheme,你可以这样做

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

您可以通过这种方式保留基本主题的所有属性,而不必在NoActionBar主题中明确添加它们:)


小智 6

res-> values-> styles.xml下

更改

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

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


小智 5

这是一个快速的解决方案.

您找到styles.xml并将基本应用程序主题更改为"Theme.AppCompat.NoActionBar",如下所示.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>
Run Code Online (Sandbox Code Playgroud)