我可以使用以下代码在蜂窝中隐藏操作栏:
getActionBar().hide();
但是当键盘打开并且用户复制粘贴任何内容时,操作栏将再次显示。如何永久禁用操作栏?
我可以使用以下代码在蜂窝中隐藏操作栏:
getActionBar().hide();
但是当键盘打开并且用户复制粘贴任何内容时,操作栏将再次显示。如何永久禁用操作栏?
Answers:
如果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>
然后将其设置为您活动的主题:
<activity android:theme="@style/NoActionBar" ... />
<item name="android:windowFullscreen">true</item>
通过在清单中设置活动主题,
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
ActionBar
对我来说,这确实是唯一完全删除了的东西。
我在onCreate函数中使用以下代码:
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
来源:https : //developer.android.com/guide/topics/ui/actionbar.html
使用Android Studio默认生成的Activity超类为ActionBarActivity
,然后其他响应中的任何解决方案均无效。要解决只是更改超类:
public class xxxActivity extends ActionBarActivity{
至:
public class xxxActivity extends Activity {
如果要全屏显示而没有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>
并使用manifest.xml中的样式。
android:theme="@style/AppTheme.NoActionBar"
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportActionBar().hide();
}
您可以简单地强制隐藏操作栏:
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-> values-> styles.xml下
更改
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
至
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
以下是永久隐藏操作栏的步骤:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
。现在,将父项替换为名称中包含“ NoActionBar”的任何其他主题。
一个。您还可以通过切换到activity_main.xml的设计选项卡,然后尝试UI主题下拉列表中提供的每个主题,来检查主题的外观。
如果您的MainActivity扩展了AppCompatActivity,请确保使用AppCompat主题。
将此代码键入您的onCreate
方法之前setContentView
:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
我想为此发布一个Designer方法,这将使设计与您的业务逻辑分离:
步骤1.在(res-> values-> styles.xml)中创建新样式:基本上,这是具有不同父项的整个方案的副本-parent =“ 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
文件中默认主题的名称更改为以下内容来创建新主题:
<style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">
然后将主题从您下方的下拉菜单更改为main_activity.xml
您所谓的主题。
您想要在移除操作栏的同时保留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中大多数Dialer应用程序显示ViewPager而没有操作栏的方式。
参考:https : //github.com/CyanogenMod/android_packages_apps_Dialer
在styles.xml
文件中使用:
<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
我使用以下解决方案:
在清单中的活动标签内:
android:label="@string/empty_string"
并在strings.xml中:
<string name="empty_string">""</string>
这样,您可以将ActionBar(或Toolbar)保留为标题,但是如果创建了Activity,则标题将自动为空。
奇怪的是,在运行4.4.2(API 19)的Nexus 7上构建时,这些都不对我有用。在大多数情况下,至少在创建空白活动应用程序后使用最新版本的Android Studio(1.2.1.1),该应用程序:
android:theme =“ @ 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文件。
在中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”主题。
希望我能帮到你。