小编And*_*rea的帖子

ViewModel 支持属性 [kotlin]

查看一些 Google 演示应用程序(如向日葵或 Google io 2018 应用程序)的代码,我注意到对于 viemodels 的支持属性,它们使用具有自定义 getter 的相同类型的单独实例;像这样:

private val _userData: MutableLiveData<User>
val userData: LiveData<User>
    get() = _userData
Run Code Online (Sandbox Code Playgroud)

但他们为什么要这样做?直接使_userData可访问性不是更好吗?难道是因为虽然_userDataMutableLiveData他们不想观察者能够改变的价值呢?

android viewmodel kotlin

7
推荐指数
1
解决办法
1069
查看次数

谷歌材料库和设计支持库的区别

我正在尝试 android 上的新材料设计组件,例如底部应用栏,但我发现每个 MDC 都存在于 android 设计支持库中,但也存在于另一个被调用com.google.android.material的库中,并且代码几乎相同(在设计库中,代码与另一个不同),那么这两个库之间有什么区别?

android android-studio android-design-library androiddesignsupport

4
推荐指数
1
解决办法
3732
查看次数

Kotlin for 循环

我正在尝试学习 kotlin 语言(尤其是 Android),但我发现学习各种类型的 for 循环有些困难,那么普通 for 循环、for every 循环和 for every 索引之间有什么区别以及如何使用它?

例如在这篇文章中:https://medium.com/mindorks/building-a-customview-tictactoe-eb439f506505(谈论android自定义视图),有这部分:

        squares.forEachIndexed {
        i, rects ->
        for ((j, rect) in rects.withIndex()) {
            if (rect.contains(x.toInt(), y.toInt()))
                return Pair(i, j)
            }
        }
Run Code Online (Sandbox Code Playgroud)

他使用每个索引来迭代正方形(即二维数组)中包含的所有变量,但我真的不明白它是如何工作的。感谢任何帮助我的人!

android kotlin

1
推荐指数
1
解决办法
3092
查看次数