【问题标题】:Android- ActionBar hidden in emulator but showing in XML layoutAndroid- ActionBar 隐藏在模拟器中但显示在 XML 布局中
【发布时间】:2015-10-10 00:05:27
【问题描述】:

我使用了 getSupportActionBar().hide();结果正如预期的那样,在应用程序测试期间隐藏了操作栏,但在 XML 设计视图中它仍然可见,这是一个问题,因为我需要可视化应用程序的外观。有什么办法可以让它在 XML 设计视图中消失?

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    发生这种情况是因为您正在以编程方式禁用操作栏,而您的 IDE 不知道它是否发生。

    将此添加到res/values/style.xml(如果没有,请创建一个)

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

    并将其放在 AndroidManifest.xml 中的 application 标签下

    android:theme="@style/AppThemeNoTitleBar"
    

    所以从头开始(假设你没有任何东西,它应该看起来像这样。

    res/values/style.xml

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

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp" >
    
        <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppThemeNoTitleBar" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        </application>
    
    </manifest>
    

    【讨论】:

    • 好的,这有点清楚了。虽然我对什么是 ActionBar 和什么是 Title 有点困惑?这是做什么的-“this.requestWindowFeature(Window.FEATURE_NO_TITLE);” ?
    • 另外,如果我按照上面所说的那样做,我也不需要以编程方式进行,对吗?即我不需要编辑.java 文件?它会发生在我的所有活动中吗?是的,那么我该如何选择哪些活动应该有或没有动作栏?
    • 现在多用ActionBar代替titlebar
    • 此 XML 属性是全局应用的,因为主题应用于应用程序范围。所以你不需要在 Activity 类(.java 文件)中这样做
    【解决方案2】:

    我认为您的清单中有活动主题。如果您删除包含操作栏的主题,问题就解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多