AndroidManifest - 为活动设置主题

3
我很沮丧,读了很多文章,希望你能帮我解决问题。为什么Android Studio在标题栏中仍然显示“Main2Activity”?
以下是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.martin.myapplication">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Main2Activity"
        android:theme="@android:style/Theme.Light.NoTitleBar"></activity>
</application>

我知道这可能只是一个小问题,但我无法解决它...

我使用的资源:

https://developer.android.com/guide/topics/ui/look-and-feel/themes.html

Android主题未被设置

在Android中为活动应用主题?

编辑 当前状态: 输入图像描述

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

这段代码可以正常工作,但会禁用每个Activity的ActionBar!

目标:activity_main2不应该有ActionBar。

解决方案: 这只是Android Studio的一个bug。在预览中它不会禁用AppBar,但是一旦你在手机上运行App,它就能正常工作了!


你的 XML 布局中有工具栏吗? - OneCricketeer
是的,我的目标是让我的布局有一个工具栏。目前来说,简单来说:我有两个活动。其中一个将保留“默认”栏,另一个将获得工具栏。因此,全屏对我来说不是一个选项,抱歉。 - Taka Incur
我的意思是,你仍然能看到这个工具栏,因为Activity布局告诉它加载一个,即使主题没有一个。 - OneCricketeer
抱歉,我现在感到困惑:是的,默认情况下我的应用程序有一个AppBar。但是在清单中为活动提供另一个主题并没有改变任何东西。我不知道为什么... - Taka Incur
你能否将这两个活动的布局添加到问题中呢?还有这两个活动的屏幕截图吗?并且标出您想要的区别。 - OneCricketeer
显示剩余3条评论
2个回答

1
在Values/Styles中添加以下代码以隐藏操作栏
<style name="CustomActivityThemeNoTitle" parent="@android:style/Theme.Light">
    <item name="android:windowNoTitle">true</item>
</style>

然后在你的AndroidManifest.xml文件中,在所需的活动中添加以下代码:

<activity android:name=".Main2Activity"
    android:theme="@style/CustomActivityThemeNoTitle"></activity>

或者,您可以在活动的onCreate方法中调用this.requestWindowFeature(Window.FEATURE_NO_TITLE);。例如:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_signup);
    ...
}

谢谢,但是只使用XML是否可行? - Taka Incur
1
@TakIncur 我已经修改了我的答案,包括XML解决方案。希望能对你有所帮助。 - JMA
最好使用AppCompat主题而不是Holo。 - OneCricketeer
我已经改用了Theme.Light,这是OP最初使用的。 - JMA
很抱歉让你等这么久。很遗憾你的解决方案没有起作用,无论是在工作室还是在我的智能手机上都是如此。老实说,我之前已经按照你建议的做了,但它确实没有显示任何更改 :/ 顺便说一下,我正在使用KitKat 4.4。 - Taka Incur
显示剩余2条评论

0

试试这个

<style name="generalnotitle" parent="general">
    <item name="android:windowNoTitle">true</item>
</style>

这不是放置在清单中的... 此外,NoTitleBar主题已经实现了这一点。 - OneCricketeer
抱歉,这并没有帮助到我。 - Taka Incur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接