Skip to content

Latest commit

 

History

History
310 lines (294 loc) · 26.4 KB

README.md

File metadata and controls

310 lines (294 loc) · 26.4 KB

Todolist

发呆便签是一款极简的便签软件,却又绚丽多彩。

功能简介

  • 【便签夹分类】 让你的生活井然有序
  • 【图文编辑】 不只是单调的文字
  • 【私密便签】 方便且安全
  • 【废纸篓功能】 世上是有后悔药的
  • 【涂鸦功能】 我是画画的小行家
  • 【天气预报】 今天你带伞了吗

项目截图

App体验:Todolist - fir.im

项目中用到的知识

项目中的用到的开源框架

Android 开发Tips && 性能优化

开发中遇到的问题

  • 下面这bug解决办法,传送门;[译文]Android Studio 3.0 发行说明 - CSDN博客
    Error:(42, 5) error: style attribute '@android:attr/windowEnterAnimation' not found.
    Error:(42, 5) error: style attribute '@android:attr/windowExitAnimation' not found.
    
    其实就是@android 前面的"@"去掉就好
  • 在做三级联动省市区选择里面,一般都是采用第三方库居多一点,但存在或多或少的问题, 比如数据太大导致很多时间等待甚至导致ANR、它提供的数据很多用不上(不可以更改数据) ,所以很难找到适合的这类开源库,哈哈哈,还是让我扎到了,看这里:yanzhenjie/ AddressChecker: MD风格的地址选择器
  • 出现下面这个问题一般都是打包使用了注解而引发的问题:
Warning:com.trello.rxlifecycle2.LifecycleProvider: can't find referenced class javax.annotation.Nonnull
Warning:com.trello.rxlifecycle2.LifecycleProvider: can't find referenced class javax.annotation.CheckReturnValue

rxlifecycle2作者已经给出了解决方案:can't find referenced class javax.annotation.Nonnull · Issue #228 · trello/RxLifecycle

  • 开发中经常发现软键盘一旦弹起来,界面会相对应向上弹,但很遗憾就是有时候不尽人意, 只要往清单文件 AndroidManifest 里面对应的 Activity 配置

     android:windowSoftInputMode="adjustResize"
    

    参考博客:EditText弹出输入键盘后页面往上顶的问题 - CSDN博客

  • RxJava中map()操作符里面的线城是在下游线程进行操作的,即observeOn()所订阅的线程

  • 在开发中遇到了就是保存图片到本地,但是本地图库没有刷新,查看了网上才知道需要发送 广播通知图库进行获取的:Android保存图片到系统相册 - CSDN博客

  • 在开发过程中,在 sutsupportActionbar(toolbar) 之后,调用 toolbar.setTitle() 设置标题无效,解决办法:为什么 Android 中 Toolbar.setTitle() 没有效果

  • 打签名正式包出现以下这种情况:

    Error:Execution failed for task ':app:validateSigningRelease'.
    > Keystore file E:\acode\Android_Studio\Todolist\app\todolist.jks not found for signing config 'externalOverride'.
    

    其实就是你的 jks 密钥配置的路径不对,AS找不到,检查一下路径即可 参考博客:build - Android Error Building Signed APK - Stack Overflow

  • 之前一直以为Activity的Intent传值没有大小限制,但项目中传bitmap的byte[]数组, 出现如下的异常(这里可能会报多个异常,但最核心就是下面这句话了)

      Caused by: android.os.TransactionTooLargeException: data parcel size 1808828 bytes
    
  • 这里在导入zhuanghongji/LockPattern: Android 九宫格图案解锁源码解析,"程序锁"模拟场景使用 的时候,设置好图案密码之后会再进入会报mPoint为null从而导致崩溃,这里修正办法: 将LockPatternView 类中的 isInitPoint 变量不要设置为静态即可

  • 当我打开settingFragment时候,老是出现下面这个问题:

     Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
     at com.yueyue.todolist.modules.setting.SettingFragment.onCreate(SettingFragment.java:81)
    

    其实这个问题我在伟大的android - java.lang.Integer cannot be cast to java.lang.String on addPreferencesFromResource - Stack Overflow 里面找到了解决办法,我这里的问题是之前的缓存存储错误,存储到都是Boolean类型,但 Fragment想拿Integer,那么就GG了,解决就是每次调试时候,手机先卸载旧版本

  • 我测试使用的手机小米4C安装到使用都没有什么问题,决定在掘金沸点宣传,但很遗憾得到 魅族手机 MX5 等机型会闪退崩溃

    android.view.InflateException: Binary XML file line #36: Error inflating class android.support.design.widget.FloatingActionButton
    

    之后我便在InflateException with FloatingActionButton from Official Design Library 找到了解决办法,把FloatingActionButton的属性 "android:backgroundTint" 改为 "app:backgroundTint" 即可

  • 当用户选择地址时候出现一片空白,报错如下:

    Attempt to invoke virtual method 'java.lang.String com.yueyue.todolist.modules.address.b.a.a()' on a null object reference
    at com.yueyue.todolist.modules.address.ui.AddressCheckActivity.a(AddressCheckActivity.java:264)
    

    这里当时没有考虑到地址为null选择的问题,现在做了判空处理,修复了这个问题

项目中的缺点

  • 由于本人理解换肤方面的知识没有透彻,去掉换肤功能