如何永久禁用操作栏

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

getActionBar().hide(); 

但是,当键盘打开,并且用户复制粘贴任何东西时,操作栏会再次显示。 我怎样才能永久禁用操作栏?

如果您使用的是Theme.Holo.Light并且希望在3.2版本的设备上使用Theme.Holo.Light.NoActionBar变体,则可以将其添加到styles.xml

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

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

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

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

 <activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" .... > 
 <application . . android:theme="@android:style/Theme.Holo.Light.NoActionBar" . > 

也许这对你有帮助

使用Android Studio默认生成的Activity超类是ActionBarActivity ,然后,其他响应中的解决scheme都ActionBarActivity 。 为了解决改变超类:

 public class xxxActivity extends ActionBarActivity{ 

至:

 public class xxxActivity extends Activity { 

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

 ActionBar actionBar = getSupportActionBar(); actionBar.hide(); 

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

我find的最好的方法是给出自定义的主题和没有操作栏,是为我的项目中的所有活动创build一个SuperClass,并在它的onCreate()调用下面的代码行 –

 this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

它总是为我工作。 这种方法唯一的问题是,在启动应用程序(不是活动,完整的应用程序)时,您会看到一小部分时间的操作栏。

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); getSupportActionBar().hide(); } 

如果你想获得全屏没有actionBar和标题。

将其添加到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> 

并使用manifest.xml中的样式。

 android:theme="@style/AppTheme.NoActionBar" 

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

 <style name="NoActionBar" parent="@style/Theme.AppCompat.Light"> <item name="android:windowNoTitle">true</item> </style> 

为您的活动设置主题:

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

和你的活动课。

它甚至在扩展ActionBarActivity的时候也可以工作。

下面是一个快速解决scheme。

您可以findstyles.xml,并将基本应用程序主题更改为“Theme.AppCompat.NoActionBar”,如下所示。

 <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <!-- Customize your theme here. --> </style> 

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

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

setContentView之前将此代码键入到onCreate方法中:

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

确保通过更改styles.xml文件中的默认主题的名称来创build新的主题:

  <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar"> 

而不是将主题从main_activity.xml的下拉列表更改为任何您称为主题的内容。

以下是永久隐藏操作栏的步骤:

  1. 打开app / res / values / styles.xml。
  2. 寻找名为“apptheme”的样式元素。 应该看起来类似于<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  3. 现在用其名称中包含“NoActionBar”的任何其他主题replace父项。

    一个。 您也可以通过切换到activity_main.xml的devise选项卡,然后尝试UI的主题下拉列表中提供的每个主题来检查主题的外观。

  4. 如果您的MainActivity扩展了AppCompatActivity ,请确保使用AppCompat主题。

另一个有趣的解决scheme,你想保留ViewPager,同时删除操作栏是有一个样式显示

 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowActionBarOverlay">true</item> <item name="android:actionBarStyle">@style/NoActionBarStyle</item> <item name="android:windowContentOverlay">@null</item> </style> <style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar"> <item name="android:backgroundSplit">@null</item> <item name="android:displayOptions"></item> </style> 

这是大多数Android中的拨号器应用程序显示没有操作栏的ViewPager。

参考: https : //github.com/CyanogenMod/android_packages_apps_Dialer

在onCreate函数中添加下面的代码

 ActionBar actionBar = getSupportActionBar(); actionBar.hide(); 

并只需导入android.support.v7.app.ActionBar

在你的表演者身上试试这个

  <activity android:name=".MainActivity" android:theme="@android:style/Theme.Holo.NoActionBar" android:label="@string/app_name" > 
  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); android.support.v7.app.ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); } setContentView(R.layout.activity_main); 

有两种方法可以在Android中禁用ActionBar

 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); 

我想发布一个devise师的方法,这将使devise与业务逻辑分开:

第1步。在(res-> values-> styles.xml)中创build新的样式:基本上它是你的整体scheme的副本,不同的父 – 父=“Theme.AppCompat.Light.NoActionBar”

 <!-- custom application theme. --> <style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimary</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowNoTitle">true</item> </style> 

第2步:在您的AndroidManifest.xml中,将此主题添加到您想要的活动中:例如,我希望我的主要活动没有操作栏,所以添加如下所示:

 <activity android:name=".MainActivity" android:theme="@style/MarkitTheme"> 

在尝试了很多东西之后,这对我来说是最好的解决scheme。

您可以强制隐藏操作栏:

 ActionBar actionbar = getSupportActionBar(); actionBar.hide(); 

只需使用您的默认主题。

我使用这个解决scheme:

在清单中,在您的活动标签内:

 android:label="@string/empty_string" 

并在strings.xml中:

 <string name="empty_string">""</string> 

这样你就可以保留ActionBar(或工具栏)的标题,但是当Activity创build时标题自动为空。

奇怪的是,当运行4.4.2(API 19)的Nexus 7时,这些工作都不适用于我。 在创build一个空白的活动应用程序后,至less在最新版本的Android Studio(1.2.1.1)中,

机器人:主题= “@风格/ AppTheme”

在应用程序元素中,而不是活动元素。 如果我删除了上面的代码或试图将其更改为:

机器人:主题= “@安卓风格/ Theme.Holo.Light.NoActionBar”

应用程序将不会运行…如果发生这种情况,只需进入styles.xml文件(res> values> styles.xml),并将.NoTitleBar添加到父块的末尾,就像这个块一样:

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

不需要更改AndroidManifest文件。