android4.4+实现MD状态栏并全屏显示内容
来源:互联网 发布:网络教育不考学位证 编辑:程序博客网 时间:2024/05/21 06:34
原文链接:http://blog.csdn.net/u013260551/article/details/50372991
material design如此之美,美到令人窒息~~(●'◡'●)
今天实现android4.4以上版本符合MD规范的状态栏,并可以全屏显示内容(即内容可以扩展到状态栏下)。
效果图:
android4.4:
android6.0:
好了,效果如上图所示,完美符合MD规范~~
实现其实很简单:
1,首先new module
compileSdkVersion 23buildToolsVersion "23.0.2"defaultConfig { applicationId "com.science.statusbartest" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0"}
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1'}
主题如下:
values\style.xml:
<!-- Base application theme. --><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> <item name="android:windowTranslucentStatus">true</item></style>values-v21\style.xml:
<style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item></style>
2,布局如下:
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.science.statusbartest.MainActivity"> <include layout="@layout/content_main"/> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:fitsSystemWindows="true" app:popupTheme="@style/AppTheme.PopupOverlay"/> </android.support.design.widget.AppBarLayout> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email"/></android.support.design.widget.CoordinatorLayout>
content_main是一个listview;
重点如下:1,Toolbar的layout_height为wrap_content;
2,给Toolbar添加fitsSystemWindows="true";
3,主要代码如下:
在onCreate方法里添加如下代码:
1 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);2 setContentView(R.layout.activity_main);3 StatusBarCompat.compat(this);第一行代码表示Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态栏遮住;(其实在style里可以加windowTranslucentStatus也可以 实现Activity全屏显示类似的效果,那么就不需要第三行代码了,不过发现此时状态栏的灰度遮罩层比正常的颜色更深了,这样感觉就比较难看了,最后在stackoverflow找到了类似问题,加上了这一行代码。不知为何加了windowTranslucentStatus后状态栏颜色变深~~哪位同学可否知道?)
第三行代码就是实现MD规范,给状态栏加上一层比标题栏稍微深一点的颜色,代码出自鸿神(●'◡'●),不过稍微改了一下~~
4,其它代码主要是listview的上下拉显示和隐藏头部和尾部的view,见上上次的博客~~
代码:http://download.csdn.net/detail/u013260551/9370899点击打开链接
0 0
- android4.4+实现MD状态栏并全屏显示内容
- android4.4+实现MD状态栏并全屏显示内容
- android4.4上全屏界面实现禁止状态栏下拉
- android4.4上全屏界面实现禁止状态栏下拉
- android4.4上全屏界面实现禁止状态栏下拉
- android4.0.3去掉底部状态栏statusbar,全屏显示示例代码
- 去掉android4.0上的状态栏,全屏显示的代码
- Android4.4实现状态栏沉浸
- android4.4全屏应用中禁止状态栏下拉
- phone3.4+sencha touch+android4 显示状态栏
- 【日常收获4】Android4.0全屏实现
- android4.0.3 去掉系统状态栏(StatusBar),让所有app程序均是全屏显示
- android4.4以上,实现状态栏颜色设置
- Android4.4以上实现沉浸式状态栏
- Android4.4 实现沉浸式状态栏
- Android4.4及以上实现透明状态栏
- Android 隐藏状态栏和Actionbar实现全屏显示
- Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果
- PC机如何利用total control控制DragonBoard 410c
- C语言字符串
- ubuntu16.04命令行模式黑屏解决办法
- php连接Access数据库的三种方法
- HDU 1285 确定比赛名次
- android4.4+实现MD状态栏并全屏显示内容
- hive:访问hive
- NOIP2005普及组 循环
- HDU 1102 Constructing Roads(Prim算法)
- js中的date,定时任务
- 离散数学之把妹要诀
- java-linux交互
- 文件缓存与内存缓存
- 欧拉函数