Android开发新手之ActionBar那些事
2018-04-10 19:02
260 查看
Android Studio在创建的默认空Activity自带有一个主题和ActionBar,这个ActionBar是有别于标题栏的。Android开发新手对于这个ActionBar可能会存在一些疑惑,本文就此交流一下个人学习总结。
我们在开发Android应用的时候,经常需要有一个Splash,也就是所谓的启动页面,这个启动页面一般是占据整个页面的,不存在标题栏。有时候,我们也可以设置为全屏, 这样就连系统的状态栏都会没有了。对于让如何让页面全屏显示,可能比较容易从网上找到答案,但是去掉ActionBar以及对ActionBar的设置,新手可能会存在一些疑惑。
环境:
Android Studio:2.3.1
Gradle:2.3.1
compileSdkVersion 25
buildToolsVersion “25.0.2”
此时,如果想要去掉ActionBar,可以在AndroidManifest.xml文件对应的Activity当中,增加以下语句:
如下图:
这样,Activity带上的ActionBar就会不显示了。
当然,如果你想在Activity类的onCreate()方法中通过如下代码实现,会发现没有效果,具体原因继续往下看
一开始,我们可能会认为是没有应用主题,但是如果我们手动在AndroidManifest文件当中加上
然而,仍旧不会奏效,这可难倒新手了。那怎样才能加上一个跟系统方式创建的Activity一样的ActionBar呢?
其实,如果细心观察,会发现,其实是因为我们继承的类不对,我们自己创建的类继承自Activity,但是系统创建的Activity继承自AppCompatActivity,这两者是有所区别的。AppCompatActivity是谷歌官方为了向后兼容而设计的一个Activity类并且能够让旧版本系统能够显示新版的主题。因此,如果想要实现带有ActionBar的Activity,可以更改自己创建的类继承自AppCompatActivity,其他的不用变。
到此,你应该明白上面说的,通过那一行代码去掉ActionBar不可行的原因了吧。
我们在开发Android应用的时候,经常需要有一个Splash,也就是所谓的启动页面,这个启动页面一般是占据整个页面的,不存在标题栏。有时候,我们也可以设置为全屏, 这样就连系统的状态栏都会没有了。对于让如何让页面全屏显示,可能比较容易从网上找到答案,但是去掉ActionBar以及对ActionBar的设置,新手可能会存在一些疑惑。
环境:
Android Studio:2.3.1
Gradle:2.3.1
compileSdkVersion 25
buildToolsVersion “25.0.2”
何为ActionBar?
底下的图片显示的,就是ActionBar了。去掉ActionBar的方法
如果我们使用系统自带的新建Activity的方法创建了一个Activity,会发现自带了ActionBar,也就是下图显示的新建方法:此时,如果想要去掉ActionBar,可以在AndroidManifest.xml文件对应的Activity当中,增加以下语句:
android:theme="@style/Theme.AppCompat.NoActionBar"
如下图:
这样,Activity带上的ActionBar就会不显示了。
当然,如果你想在Activity类的onCreate()方法中通过如下代码实现,会发现没有效果,具体原因继续往下看
//取消标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE);
主题应用了还是没有ActionBar?
对于Android开发新手,往往我们按照一些教程,都是教我们手动创建一个Activity的类文件继承自Activity,然后再创建一个布局文件,手动将他们关联起来,并在AndroidManifest文件当中加入声明,这样一个Activity就手动创建好了。但是这样创建的Activity存在一个问题,就是没有ActionBar,没有标题栏,很不美观啊。一开始,我们可能会认为是没有应用主题,但是如果我们手动在AndroidManifest文件当中加上
android:theme="@style/AppTheme"
然而,仍旧不会奏效,这可难倒新手了。那怎样才能加上一个跟系统方式创建的Activity一样的ActionBar呢?
其实,如果细心观察,会发现,其实是因为我们继承的类不对,我们自己创建的类继承自Activity,但是系统创建的Activity继承自AppCompatActivity,这两者是有所区别的。AppCompatActivity是谷歌官方为了向后兼容而设计的一个Activity类并且能够让旧版本系统能够显示新版的主题。因此,如果想要实现带有ActionBar的Activity,可以更改自己创建的类继承自AppCompatActivity,其他的不用变。
到此,你应该明白上面说的,通过那一行代码去掉ActionBar不可行的原因了吧。
想要全屏显示,去掉状态栏?
这个很好办,只需要在Activity类的onCreate()方法中,加上这样一个语句:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
相关文章推荐
- android 新手开发笔记(个人)
- 新手Android开发之二:onclicklistener到底怎么用?
- 新手学Android之在windows下搭建Android开发环境以及HelloWorld
- 新手必看——如何快速的配置Android开发环境
- Cocos2d-x 3.x 全平台(Android,iOS)新手开发配置教程攻略
- 新手开发android容易出现的错误(不断更新中...)
- [置顶] Android新手学习思维导图,教你一步步学会Android开发
- Android开发中字符串比较,新手容易出错
- android新手,开发环境配置
- android开发指南之新手篇【2011-11-29】
- Android新手轻松学知乎日报开发(三)封装简单的OkHttp
- Android开发新手教程--Android应用程序结构
- android开发新手不可不知的10大严重错误
- 新手上路(一):基于android平台的投票应用的开发(三)之问题整理
- Android新手入门2016(2)--Mac下的Android开发环境
- Android开发新手指南二
- android开发指南之新手篇【2011-11-12】
- Cocos2d-x 3.2 android平台新手开发环境配置教程
- 适合新手看的安卓开发书android studio
- Android开发中字符串比较,新手容易出错