JessYan

Results 199 comments of JessYan

感谢 BlankJ 老师的分享,[AndroidAutoSize](https://github.com/JessYanCoding/AndroidAutoSize) 已经迭代 10 多个版本,扩展了很多自定义功能,基本能满足所有人的屏幕适配需求,唯一美中不足的就是屏幕适配在某些情况下可能会失效的问题,这一直困扰着 AndroidAutoSize 以及今日头条屏幕适配方案,之前我对于此问题提供了两种解决思路 第一个就是在布局显示到屏幕上之前,调用框架提供的方法将 DisplayMetrics 的参数恢复成期望的值,但必须保证调用这个方法到布局显示到屏幕的期间,DisplayMetrics 的参数不能被修改,由于某些定制系统的行为可能是未知的,所以就一直没找到一个最合适并且通用的调用时机 第二个就是寻求获得唯一修改 DisplayMetrics 的权限,让其他代码不能修改 DisplayMetrics,但这也只是构想,还没找到比较好的解决方案 今天看到 blankJ 老师的文章,恍然大悟,我第一个方案一直在寻找的最合适的调用时机,可能就是您的方案! 今日头条方案的切入点 TypedValue.applyDimension(int unit, float value, DisplayMetrics metrics) 方法,需要传入一个 DisplayMetrics,而系统会在调用 TypedValue.applyDimension 之前通过...

**First** 😃

我说下我的看法, Android 架构组件除了 Room, 源码我全部认真的看完了, **LiveData** 相比于 **Rxjava**, 真的是太简陋了, **LiveData** 是和官方的 [生命周期组件](https://developer.android.google.cn/topic/libraries/architecture/lifecycle.html) 结合使用的, 如果除去这个 生命周期组件, 那这个 **LiveData** 仅仅是一个简单的观察者模式, 功能就是调用 **setValue(T)** 遍历通知之前注册的所有观察者, 就算加了生命周期组件, 也仅仅是与 Activity 或 Fragment 的生命周期做绑定, 达到在生命周期改变时停止和恢复事件的功能, 这相比于 **Rxjava**...

**LiveData** 和 **Rxjava** 一起使用, 我并不反对, 也许我没在项目中使用过 **MVVM** 我不了解 **LiveData** 有什么不可替代, 非他不可的需求场景, 但我觉得 **ViewModel** 或者 **Model** 中都返回一个 **Observable**, 调用者只用继续在这个数据流中继续处理后续的操作就可以完成的需求, 为什么要一边返回 **LiveData** 一边返回 **Observable**, 然后在他们之间相互转换来完成需求, 多做的这些操作, 是为了使用 **LiveData** 而使用 **LiveData** , 还是真的...

以上是我自己的拙见, 我也没在项目中实际使用过 **MVVM**, 只是在自己的 **MVPArms** 框架中考虑集成并尝试修改 **Android** 架构组件中部分源码已达到自己的需求时, 对源码进行了深层次的研究, 有什么说的不对的地方望指正

@JakeWoki 什么模版

@JakeWoki 哦, [我有](https://github.com/JessYanCoding/MVPArmsTemplate), 根据包名一键生成整个新项目也在 [开发中](http://androidstarters.com)

你可能想的过度完美, 像你说的 LivaData 只相当于有两个操作符的功能, 如果 ViewModel 中只有 LiveData, 是可以的, 但 ViewModel 中哪怕不处理数据, 只通知 Ui 也会夹杂着很多其他的逻辑, 比如说频繁点击的过滤, 定时, 以及一些对数据无关但是对于 UI 有关, 并且 DataBinding 又做不到的逻辑, 所以 ViewModel 只有你说的这两个功能完全是你自己想象的, 是不切实际的, 完成这两个功能之前就肯定有一些其他的逻辑需要加入, 这时 **LiveData**...

是的, 我也认同你的看法, 没有完美的解决方案, 不过是在没有更好的解决方案之前, 对一些事物的妥协, 找到一个适合自己的解决方案, 我上面也是说了, 我只是发表下我自己的看法, 我没有在实际的场景使用过, 也是自己片面的理解, 所以大家可以一起讨论, 大家如果都有收益, 那也是极好的, 如果有言语之中有冒犯到, 还请见谅🙏

@alittlecup 因为我个人喜欢做一些和传统解决方式不同的解决方案, 我们站在巨人的肩膀上没错, 但是我们要学会在巨人肩膀身上成长, 而不只是乘凉, 更不能局限于巨人的思维之下, 没有创新就没有进步