如何永久禁用操作栏

我可以用这个代码把动作条隐藏在蜂巢中:

getActionBar().hide();

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

306787 次浏览

通过在清单中设置活动主题,

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

如果你正在使用 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" ... />
<application
.
.
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
. >

也许这个能帮到你

我发现的最好的方法是为我的项目中的所有活动创建一个 SuperClass,在它的 onCreate ()中调用下面的代码行,这样可以给出定制的主题,而不需要动作条

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

这招对我很管用。这种方法的唯一问题是,在启动应用程序(不是活动,而是完整的应用程序)时,您会看到动作条,时间只有几分之一秒。

另一个有趣的解决方案是,在删除操作栏时保留 ViewPager,这种方案使用样式作为 show

<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

使用 Android Studio 默认生成的 Activity 超类是 ActionBarActivity,然后,其他响应中的所有解决方案都不能正常工作。要解决这个问题,只需改变超类:

public class xxxActivity extends ActionBarActivity{

致:

public class xxxActivity extends Activity {

不要使用全息主题和行动栏将消失。 这段代码适用于 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 时也能工作。

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

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

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

setContentView之前,在 onCreate方法中键入以下代码:

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

我使用这种方法:

在清单里,在你的活动标签里:

android:label="@string/empty_string"

在 strings.xml 中:

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

这样可以保留标题中的 ActionBar (或 Toolbar) ,但是创建 Activity 时标题会自动为空。

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

在 Android 中有两种禁用 ActionBar的方法。

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

在 onCreate 函数中添加以下代码

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

然后导入 android.support. v7.app. ActionBar

奇怪的是,当我在运行4.4.2(API 19)的 Nexus7上构建时,这些都不起作用。大多数情况下,至少在最新版本的 Android Studio (1.2.1.1)中,在创建了一个空白活动应用程序之后:

主题 = “@style/AppTheme”

是在 application 元素中,而不是 activity 元素中。如果我删除上述代码或试图将其更改为:

Android: Theme = “@android: style/Theme. Holo. Light.NoActionBar”

应用程序不会运行... ... 如果发生这种情况,只需进入 styles.xml 文件(res > values > styles.xml)并添加。NoTitleBar 到父代码块的末尾,如下所示:

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

不需要更改 AndroidManifest 文件。

这里有一个快速的解决方案。

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

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

在你的清单上试试这个

 <activity
android:name=".MainActivity"
android:theme="@android:style/Theme.Holo.NoActionBar"
android:label="@string/app_name" >

如果你想得到没有动作栏和标题的全屏。

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

并使用 Manif.xml 的样式。

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

通过将 styles.xml文件中默认主题的名称更改为:

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

然后把主题从 main_activity.xml下拉菜单改成你所谓的主题。

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

  1. 打开 app/res/values/styles.xml。
  2. 查找名为“ apptheme”的 style 元素 类似于 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  3. 现在用包含 “ NoActionBar”。

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

  4. 如果您的 主要活动延伸 AppCompatActivity,请确保 您使用 AppCompat 主题

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

我更愿意发布一个 Designer 方法来解决这个问题,这将使设计与业务逻辑分开:

第一步。在(res-> value-> styles.xml)中创建新样式: 基本上,它是使用不同的父级-father = “ 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">

在尝试了很多事情之后,这对我来说是最好的解决方案。

转到 styles.xml 将这个 Dark ActionBar 更改为 < strong > NoActionBar

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

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

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

只要使用您的默认主题,它将工作良好,如果全屏幕设置

如果你只想要一个没有动作条的主题,你可以使用“ 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>

然后你就可以

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

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

<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

您可以通过这种方式保留基主题的所有属性,而不必显式地将它们添加到 NoActionBar 主题中:)

Res-> value-> styles.xml下面

改变

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

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

在你的 activity_main.xml,你可以从那里调整 排队:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
android:theme="@style/Theme.Design.Light.NoActionBar"
.......
">

有时,当您可以看到这样的 点击这里,您可以从这里选择“ noActionBar”主题。

希望我帮到你了。

styles.xml文件中使用:


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

一些答案已经写了,如果你没有找到 styles.xml文件在 res>values,然后你可以这样做,到 res>values>themes>themes.xml这里你需要添加这两行内的样式

 <item name="android:windowFullscreen">true</item>
<item name="windowNoTitle">true</item>

Xml 文件

 <style name="Theme.FurnitureApp.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>

在 setContent {}方法之前编写以下代码

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