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

时间:2015-06-10 02:31:55

标签: android title appcompatactivity appcompat-v7-r22.2

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

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

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

9 个答案:

答案 0 :(得分:62)

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

<style name="Theme.MyDialog" parent="@style/Theme.AppCompat.Light.Dialog">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

答案 1 :(得分:13)

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

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

答案 2 :(得分:13)

尝试

  getSupportActionBar().hide() 

如果您使用的是AppCompatActivity

并且

 getActionBar().hide() 

如果您的活动扩展了ActionBarActivity。 希望它有所帮助。

答案 3 :(得分:8)

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

<强> style.xml

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

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

答案 4 :(得分:8)

只有一件事适用于AppCompat主题 - supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

答案 5 :(得分:7)

If you're using support library use:

getSupportActionBar().setDisplayShowTitleEnabled(false);

If not then use

getActionBar().setDisplayShowTitleEnabled(false);

答案 6 :(得分:1)

android:theme="@style/AppTheme.NoActionBar"中添加AndroidManifest.xml就可以解决这个问题。

@Brexx Galangue解决方案给了我以下运行时错误:

  

java.lang.RuntimeException:无法启动活动
      引起:java.lang.IllegalStateException:您需要使用       带有此活动的Theme.AppCompat主题(或后代)。

答案 7 :(得分:-1)

尝试在您的清单上添加此代码,特别是您想要消除其Actionbar的活动:

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >

希望它有所帮助:D

答案 8 :(得分:-1)

 public class MainActivity extends AppCompatActivity {

  @Override protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
     getSupportActionBar().setCustomView(R.layout.custom_title_bar);

  }  
}