沉浸式标题栏

来源:互联网 发布:何玉洁数据库第四版 编辑:程序博客网 时间:2024/06/08 00:19

长时间来,一个app打开,总会有一个符合自身的标题栏,现在沉浸式状态栏就是大家对于提升用户体验的开始,所以大家的app一定要有的界面UI就是他,


那么我们实现的效果就是这样


好的,现在上代码

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">    <!-- 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" parent="@style/BaseAppTheme">    <item name="windowActionBar">false</item>    <item name="windowNoTitle">true</item>    <item name="android:windowBackground">@color/white</item>    <item name="android:textColor">@color/text_nomal</item>    <item name="android:textSize">@dimen/text_size_normal</item>    <item name="android:listDivider">@drawable/divider_base</item>    <!-- 设置activity切换动画 -->    <item name="android:windowAnimationStyle">@style/activityAnimation</item></style>

并且在AndroidManifest中的application中指定主题必须是

<application    android:allowBackup="true"    android:hardwareAccelerated="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:supportsRtl="true"    android:theme="@style/AppTheme">    <activity        android:name=".view.MainActivity"        android:launchMode="singleTask"        android:theme="@style/FullTheme"        android:windowSoftInputMode="stateAlwaysHidden">

有些时候界面有的时候设置了状态栏的透明,那么我们需要在我们的父activity中将这个属性取消,因为这个属性是android4.4才出现的,就像这样

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {         // 透明状态栏//       getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);         // 透明导航栏         getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);      }

这就是沉浸式的效果实现。不过5.0版本存在一些差异,差异请参考鸿洋大神的博客http://blog.csdn.net/lmj623565791/article/details/48649563; 


如有错误的地方,请各位大神指教。



0 0