安卓导航抽屉 Navigation Drawer 实现沉浸通知栏

在使用 Navigation Drawer Activity 模版的时候,遇到了通知栏无法完全沉浸的问题,尝试搜索一些现有的解决方法,但是或多或少都会存在一些问题,通过反复尝试找到找到了一种比较靠谱的思路 环境 测试模拟器:Pixel 3A compileSdk:32 minSdk:28 targetSdk:32 创建工程 默认效果展示: 修改步骤 设置状态栏变为透明:修改主题配置 <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> 修改为: <item name="android:statusBarColor">@android:color/transparent</item> 修改后完整文件: <resources> <!-- Base application theme. --> <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> <!-- Primary brand color. --> <item name="colorPrimary">@color/purple_500</item> <item name="colorPrimaryVariant">@color/purple_700</item> <item name="colorOnPrimary">@color/white</item> <!-- Secondary brand color. --> <item name="colorSecondary">@color/teal_200</item> <item name="colorSecondaryVariant">@color/teal_700</item> <item name="colorOnSecondary">@color/black</item> <!-- Status bar color. --> + <item name="android:statusBarColor">@android:color/transparent</item> <!-- Customize your theme here. --> </style> <style name="Theme.MyApplication.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <style name="Theme.MyApplication.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="Theme.MyApplication.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> </resources> 修改后的效果: ...

May 10, 2022

安卓初学指南

在项目的第二阶段遇到挺多坑,所以整理了一下经验,如果你想尝试安卓开发,希望能帮到你。在此之前可以先看我之前写的 初见安卓开发,了解一下我们目前的情况 预先准备 需要熟悉 Java 基础语法 安装开发环境( JDK、AndroidStudio (简称 AS )、虚拟机等),安装环境比较繁琐,而且需要下载很多东西(默认都是安装到 C盘,总共可能会占用 20G 左右的空间)。安装可能会劝退一部分朋友,这里推荐两个教程跟着做就没问题了 安装AS之前一般会先安装 Java 开发工具包(JDK),可以参考这篇博客【Android Studio安装部署系列】JDK开发环境搭建,比较值得一说的是,现在下载 JDK 要到 Oracle 官网,而且还需要注册账号,有点麻烦。然后开始安装 AS,参考这个视频教程 1# Android Studio开发环境 (Attect) Android开发教程 Android Studio 设置代码提示和代码自动补全快捷键 Android Studio 真机测试/开发者模式 初学比较常用的快捷键: 智能建议:Alt 回车 代码整理(格式化代码): Ctrl Alt L 注释:Ctrl / 块注释:Ctrl Shift / 开始学习 如果没有任何开发经验,比较推荐看视频Android开发教程( 2019最新版,使用 JetPack ),这个教程使用的是 JetPack库,前 40 集使用 Java,从 41 集开始换为了 Kotlin。个人觉得这作者讲的深入浅出,而且教程中也传递了很多规范化的思想,很适合初学者。要注意作者早期视频使用的是内测版本的 ViewModel库,而现在默认自带稳定版,所以不需要手动添加 ViewModel 依赖,视频中使用的 ViewModel 构造方法已过时,应该使用下面这个: MyViewModel = myViewModel = new ViewModelProvider(this).get(MyViewModel.class); 初学最好按着教程一步一步来,变量名也最好跟着教程来,这样出错了跟着视频,排错起来也比较容易。一定要跟着敲代码,边敲边理解整个逻辑,刚开始可能比较懵,但是到后面,对整个体系有了一定了解,就会豁然开朗,这个时候可以看看官方文档,这样会加深对安卓开发或是JetPack的理解 觉得学的差不多了,就可以开始在GitHub上找一些感兴趣的安卓项目(或者是找一些最佳实践),克隆下来,看看别人是怎么写的,模仿这写一写,这个过程会遇到很多问题,解决这些问题,就会收获很大的提升 ...

September 2, 2020

初见安卓开发

初见安卓开发 从 Android开发者官网 的导航栏我们可以看得出来 Google 在安卓开发方面主推 Jetpack 和 Kotlin Android Jetpack 是一套组件库,其中包含了很多组件,比如:LiveData、Room、ViewModel等等,使用这些组件极大简化了开发,消除样板代码,提高应用质量 Kotlin 是 JetBrains 在 2011 年发布的静态类型编程语言(这是一个开源项目),虽然语法上不能与 Java 兼容,但它是面向JVM,所以它可以和Java代码相互运作。在 Google I/O 2017 中,Google 宣布在 Android 上为 Kotlin 提供最佳支持,后来 Google 就把 Android 开发的官方语言更换为了 Kotlin Java or Kotlin 选择语言确实比较重要,会极大影响后续的开发工作。目前情况:团队成员有 Java 基础、无 Kotlin 基础、无安卓开发经验,项目有时间限制。这里列举几个我们团队比较可感知的影响因素进行对比 Java 优点:Java安卓开发的资料相对多、遇到问题搜索到的概率比较大、Github 上有大量的 Java 安卓项目可以学习 缺点:相对 Kotlin 有很多样板代码、没有 Kotlin 的一些特性代码写起来会比较麻烦、Jetpack 库的资料大多用 Kotlin 举例 Kotlin 优点:有很多语法糖、简化 findViewById、简化数据类、空指针安全、函数式编程、协程(解决异步任务处理)… 缺点:Kotlin 安卓相关的教程比较少,Kotlin 的资料相对没有 Java 那么多,遇到问题搜索到的概率相对低一点 ...

September 1, 2020