如何从Activity扩展ActionBarActivity或AppcompatActivity与Dialog主题删除标题栏

Mik*_*nov 30 android title android-appcompat appcompatactivity

我不得不在ActionBarActivity之前和现在从AppcompatActivity扩展我的Activity主题Theme.AppCompat.Light.Dialog,因为我的Base Activity扩展了这个.

但是现在有了新的appcompat v7(v22)库我的Activity开始显示标题栏,尽管我使用自定义样式的项目windowActionBar = false,android:windowNoTitle = true.但是在appcompat库升级之前没有这样的问题,标题栏没有显示.

如果我的活动扩展了FragmentActivity,一切都还可以,我明白也许我使用了一个糟糕的模式,我的对话活动从AppcompatActivity扩展但我想知道有没有办法删除标题栏?

Joh*_*lly 64

我有同样的问题,需要做以下事情来解决(注意使用"windowNoTitle"而不是"android:windowNoTitle")

<style name="Theme.MyDialog" parent="@style/Theme.AppCompat.Light.Dialog">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • @Mikhail 这应该是公认的答案。作品!:) (2认同)

sak*_*wal 15

您可以通过调用在运行时隐藏操作栏hide().例如:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();
Run Code Online (Sandbox Code Playgroud)


小智 14

尝试

  getSupportActionBar().hide() 
Run Code Online (Sandbox Code Playgroud)

如果您使用的是AppCompatActivity

 getActionBar().hide() 
Run Code Online (Sandbox Code Playgroud)

如果您的活动扩展了ActionBarActivity.希望能帮助到你.


小智 8

要解决类扩展AppCompatActivity上的操作栏,我首先从style.xml文件中的main主题定义新主题扩展:

style.xml

<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.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

并将noactionbar主题实现到AndroidManifest.xml中您想要的活动.希望这有帮助:)


小智 8

在AppCompat主题中只有一件事 - supportRequestWindowFeature(Window.FEATURE_NO_TITLE);


小智 7

如果您正在使用支持库:

getSupportActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)

如果没有那么使用

getActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)


小智 -1

尝试将此代码添加到您的清单中,特别是添加到您想要消失的活动中Actionbar

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
Run Code Online (Sandbox Code Playgroud)

希望有帮助:D