道和开发笔记

来源:互联网 发布:网络拾音头 编辑:程序博客网 时间:2024/06/10 04:00

道和,是一个追求寻找志同道合朋友的社交app,使用bmob后端和即时通讯来开发,历时11天,开发中颇有心得和体会。

  1. fragment中,当tablayout和viewpager搭配使用时,不使用fragment的replace方法,而是使用hide和show方法。因为使用replace的话,会出现空白页面的现象。采用hide和show方法的时候会出现重影,这里的解决方法是在onSaveInstanceState()和onRestoreInstanceState()方法中记录当前选择的fragment索引,在acvitity被重新启用之后能够正确的hide和show。
  2. 再一次复习了6.0运行权限的获取与申请。首先检测当前sdk是否大于23,如果大于23就检测是否获取了权限,如果获取了权限就执行所需要的逻辑,如果没有获取就申请后,在回调方法中判断是否给予了相应的权限。
  3. 当使用了沉浸式状态栏的时候,首先得要取消actionbar,然后在进行沉浸式状态栏设置,同时,如果这里有toolbar的话有两种方案,一种是设置状态栏透明,同时不指定状态栏颜色,不用fitsSystemWindows属性。二是不设置状态栏透明,而是指定状态栏颜色与toolbar背景色相同,看起来是沉浸式。当没有toolbar的时候,最好是使用第一种方案。
  4. 加载图片使用glide加载图片会大大减少性能开销。
  5. 可以写一个SharedPreferences工具类来帮助进行SharedPreferences的增删改查。
  6. 多使用recycleview,同时,recycyleview与scrollview嵌套的时候会有问题,这里重写layoutmanager才可以。
  7. fragment嵌套fragment的时候,所需要的fragmentmanager需要使用getChildFragmentManager(),否则会出现页面空白的现象。
  8. fragment+viewpager+tablayout的时候,fragment的title使用viewpager的setAdapter方法中的getPageTitle()方法来获取。
  9. fragment+viewpager+tablayout的时候,会一次性加载完所有fragment的oncreatview方法,耗时操作不要在此方法中进行。
  10. 在匿名内部类的方法中访问局部变量需要设置为final,因为生命周期的问题,此时可以调用外部方法来避免这种情况。
  11. 颜色值:#00000000和#00ffffff为透明颜色,前面两个为透明度,后面的为颜色值
  12. EventBus是个很好的应用内传递消息的库,可以传递任何事件,只要注册,在应用内就可以进行消息分发。同时也可以使用sticky = true属性,表示即使注册在消息分发前也一样可以收到消息。注册使用EventBus.getDefault().register,解注册为EventBus.getDefault().unregister。在3.0以后不需要使用那四个方法,而是才用注解的方式来标示那个方法为收到事件后调用的方法,注解为@Subscribe。同时,这里threadMode属性还有四个选项

    -ThreadMode.MAIN UI主线程

    -BACKGROUND 后台线程

    - POSTING 和发布者处在同一个线程

    - ASYNC 异步线程

  13. 在recycleview的adapter中 getcount方法需要对list集合进行非null判断在决定返回多少,否则有可能会出现空指针异常
  14. 在drawable中 solid为填充颜色,corners为设置四个角为弧形,radius为弧形半径,这样可以给button设置一个样式,样式采用background
  15. 打包发布签名的时候,获取sha1值的方法,点击右边的gradle->项目名->Tasks->android->signingreport 就可以得到测试版的sha1了;签名打包的话就是build>Gererate Signed APK 按照提示就可以签名打包了。
  16. 总结,多使用github,多学习sdk,多学习先进技术。
0 0
原创粉丝点击