去除继承ActionBarActivity的Activity中的ActionBar

去除继承ActionBarActivity的Activity中的ActionBar

在android studio中,我最小版本设置为4.0,新建的Activity 会继承 ActionBarActivity ,这时Activity 会自动生成ActionBar,我们想去掉它,可以这样做:
1.把styles.xml中修改parents

   parent="Theme.AppCompat.Light.DarkActionBar"

变为:

   parent="Theme.AppCompat.Light.NoActionBar"

这里的AppCompat就是为了兼容Material Design的Theme。

如果修改为继承Activity, styles.xml 中的 Theme 就与 support.v7 包里的Theme 不相匹配,所以就算不改, ActionBar 也并不会生成。此时如果调用 show() (具体见第二条)的话,程序就会崩溃。
至于跟Activity相匹配的Theme应该是什么,我也没找到,希望看到的人知道的话能评论告知一下,谢谢了。

2.当要把活动变成Dialog 时:
高低版本的theme会不一样,如果是低版本:

   android:theme="@android:style/Theme.Dialog"

高版本:

   android:theme="@style/Theme.AppCompat.Dialog"

低版本的活动继承的是Activity,高版本继承的是ActionBarActivity。
低版本的要去掉ActionBar,可以在活动的onCreate方法中加入

   requestWindowFeature(Window.FEATURE_NO_TITLE);

或是

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

高版本的不能用上面的requestWindowFeature(Window.FEATURE_NO_TITLE),可以用第二个,但是要把 getActionBar() 改为 getSupportActionBar(),即

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

如果选择了 hide() 的方法,又想要再显示出来的话,可以将其改为

   actionBar.show();

因为这里导入了 support.v7 的包,一些地方就需要变化。
关于 support.v7 ,可以看这里。

http://www.stormzhang.com/android/2015/03/29/android-support-library/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值