智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述没有ActionBar的Android Activity相关的知识,希望能为你提供帮助。
我在我的应用程序中有不同的Activities
,在所有这些我不想要Action Bar
。我找不到如何禁用它。我试图找到一个属性将其应用于main_activity.xml
但到目前为止我没有找到任何东西。有人可以帮帮我吗?
答案哈哈,我刚才也被困在那一点上,所以我很高兴我可以帮你解决问题,至少对我有用:)
你想要做的是在values / styles.xml中定义一个新样式,使它看起来像这样
<
resources>
<
style name = "AppTheme" parent = "android:Theme.Holo.Light.DarkActionBar">
<
!-- Customize your theme here. -->
<
/style>
<
style name = "NoActionBar" parent = "@android:style/Theme.Holo.Light">
<
item name = "android:windowActionBar">
false<
/item>
<
item name = "android:windowNoTitle">
true<
/item>
<
/style>
<
/resources>
只有NoActionBar风格才对您有意义。最后你必须在AndroidManifest.xml中设置为应用程序的主题,所以它看起来像这样
<
application
android:allowBackup = "true"
android:icon = "@drawable/ic_launcher"
android:label = "@string/app_name"
android:theme = "@style/NoActionBar"<
!--This is the important line-->
>
<
activity
[...]
我希望这有帮助,如果没有,请告诉我。
另一答案请在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>
并以这种方式改变父母
<
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
另一答案创建一个具有任何名称的新Style,在我的例子中为“Theme.Alert.NoActionBar”
<
style name="Theme.Alert.NoActionBar" parent="Theme.AppCompat.Dialog">
<
item name="windowNoTitle">
true<
/item>
<
item name="windowActionBar">
false<
/item>
<
/style>
将其父级设置为“Theme.AppCompat.Dialog”,如上面的代码所示
打开AndoridManifest.xml并自定义要显示为此类警报对话框的活动
<
activity
android:excludeFromRecents="true"
android:theme="@style/Theme.Alert.NoActionBar"
android:name=".activities.UserLoginActivity" />
在我的应用程序中,我希望将我的用户登录活动显示为警报对话框,这些是我使用的代码。希望这对你有用!!!
另一答案它真的很简单只需要你的
styles.xml
将父主题更改为Theme.AppCompat.Light.NoActionBar
或Theme.AppCompat.NoActionbar
,你就完成了.. :)另一答案有多种方法可以做到这一点。
1) Change the theme in Android Manifest在Application元素下面,您将找到主题标记。用这个替换它 -
android:theme="@android:style/Theme.NoTitleBar"
如果您使用的是AppCompat,请使用
@android:style/Theme.AppCompat.NoActionBar
。这将为所有活动设定主题。如果您不需要特定活动中的操作栏,则在活动容器中设置主题,即
<
activity android:theme="@android:style/Theme.NoTitleBar" ...>
您也可以在样式中设置
android:theme="@android:style/Theme.NoTitleBar"
主题并在以后使用它。2) Create a Custom Theme在
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>
然后在Manifest中将其设置为活动的主题:
<
activity android:theme="@style/NoActionBar" ... />
3) Dynamically Remove the Action Bar在设置内容视图之前将此代码放在
onCreate
方法中 -getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
如果您使用的是支持库,请使用
getSupportActionBar()
。另一答案考虑到每个人都在发布隐藏ActionBar的旧方法,这是在AppCompat支持库的样式中实现它的正确方法。如果你还没有,我强烈建议你继续前进。
只需删除ActionBar即可
<
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<
/style>
如果您正在使用appcompat支持库,这是隐藏ActionBar以使其全屏显示或开始在布局中实现工具栏的最简单且推荐的方法。
<
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>
然后更改工具栏颜色
<
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” />
最后一点:您的Activity类应该扩展AppCompatActivity
public class MainActivity extends AppCompatActivity {<
!--Activity Items -->
}
另一答案如果您正在使用
AppCompat
,请在AndroidManifest.xml
中声明您的活动,如下所示:<
activity
android:name=".SomeActivity"
...
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
另一答案打开Manifest并在没有操作栏的情况下将属性theme =“@ style / Theme.AppCompat.Light.NoActionBar”添加到您想要的活动中:
<
application
...
android:theme="@style/AppTheme">
<
activity android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
...
<
/activity>
<
/application>
另一答案您也可以将写入here的ActionBarActivity继承更改为Activity。
UPDATE
一个很好的解决方案是here:
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
}
另一答案我会尝试尽可能简单地展示它:
在ANDROIDMANIFEST文件中声明全屏幕活动:
<
activity
android:name=".GameActivity"
android:label="@string/title_activity_game"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
现在在Android工作室(如果您使用它)在设计器中打开您的Activity xml文件(在我的示例中为activity_game.xml)并选择主题(在带有小圆圈的设计器点击按钮中的手机上方),然后选择左侧的Mainfest主题,然后NoTitleBar.Fullscreen。
希望它会有所帮助!
另一答案如果您希望大多数活动都有一个操作栏,您可能会从默认主题继承您的基本主题(这是Android Studio默认自动生成的):
<
!-- 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>
然后为无条形活动添加一个特殊主题:
<
style name="AppTheme.NoTitle" parent="AppTheme">
<
item name="windowNoTitle">
true<
/item>
<
item name="windowActionBar">
false<
/item>
<
item name="actionBarTheme">
@null<
/item>
<
/style>
对我来说,将actionBarTheme设置为@null是解决方案。
【没有ActionBar的Android Activity】最后在清单文件中设置活动:
<
activity ... android:theme="@style/AppTheme.NoTitle" ... >
推荐阅读
- 如何在Android上将带有文本的向上操作图标更改为按钮()
- Windows系统高级选项选单变成英文
- 双击快捷方式以后系统一些也没有了
- 系统为啥无法运行任何应用程序呢
- 啥原因会导致系统的图标显示异常
- 我们看看:系统无法显示缩略图技巧
- 恢复Windows系统中的缩略图技巧项
- 啥原因导致了窗口小图标变成乱码
- 系统分区无故的被占用了几百MB空间