发表于: 2018-08-09 23:58:22

1 1021


一、今天完成的事情

    修改了状态栏的背景颜色,使之与整个界面协调一

       

      参考资料:由沉浸式状态栏引发的血案

                        Translucent System Bar 的最佳实践

       Translucent System Bar是从Android 4.4开始引入的特性,为了提高兼容性,不可以直接引用这个特性,需要为不同的SDK设置相应的values文件夹,让系统自己去判断并选择合适的Theme。

        

        在每个values文件夹中都创建一个styles.xml文件,在每个styles.xml中创建一个同名Theme,并对android:windowTranslucentStatusandroid:windowTranslucentNavigation这两个属性进行设置,如下所示:

        values/styles.xml

<style name="ColorTranslucentTheme" parent="AppTheme">

</style>

         values-v19/styles.xml

<style name="ColorTranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
   <item name="android:windowTranslucentStatus">true</item>
   <item name="android:windowTranslucentNavigation">true</item>
</style>

        values-v21/style.xml

        这里需要设置系统状态栏的颜色

<style name="ColorTranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
   <item name="android:windowTranslucentStatus">false</item>
   <item name="android:windowTranslucentNavigation">true</item>
   <item name="android:statusBarColor">@color/blue_5fc0cd</item>
</style>

        然后到AndroidManifest.xml中为Activity设置Theme

<activity android:name=".RegisterActivity"
   android:theme="@style/ColorTranslucentTheme">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />

       <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

          最后在activity对应的layout中设置android:fitSystemWindows为true,这样可以防止状态栏和主界面发生重叠

android:fitsSystemWindows="true"


二、明天计划的事情

    1.完成昨天未完成的计划:完成登录界面、为控件设置点击事件;

    2.学习验证码倒计时功能


三、遇到的问题

    1.在输入windowTranslucentStatus时,习惯性地在window后面加了个s,检查了好几遍才发现这个错误。

     2.不是很明白android:windowTranslucentStatusandroid:windowTranslucentNavigation这两个属性的原理。


四、收获

    学会了如何设置状态栏背景颜色

    

    


返回列表 返回列表
评论

    分享到