小编Tat*_*aki的帖子

如何在 Jetpack Compose 对话框中的系统状态栏后面绘制

我禁用了fitSystemWindowsviaWindowCompat.setDecorFitsSystemWindows(window, false)在状态栏后面绘制,并且我正在使用insets accompanist 库来获取相应的插图,以将填充添加到特定的可组合项。

但是,如果我显示全屏对话框,该对话框仍然具有系统栏和导航栏的填充,并且拒绝在状态栏后面绘制。

该对话框类似于以下代码片段:

Dialog(
    onDimissRequest = {},
    properties = DialogProperties(usePlatformDefaultWidth = false)
) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

是否需要任何其他设置才能让对话框绘制在系统状态栏后面?

android android-dialog android-dialogfragment android-jetpack-compose

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

组合多个 LiveData 的更好方法是使用 MediatorLiveData 还是 switchMap?

更推荐哪种方法来组合多个 LiveData:使用MediatorLiveDataswitchMap

// MediatorLiveData approach
fun <A, B, C> combine(
    liveData1: LiveData<A>,
    liveData2: LiveData<B>,
    onChanged: (A?, B?) -> C
): MediatorLiveData<C> {
    return MediatorLiveData<C>().apply {
        addSource(liveData1) {
            value = onChanged(liveData1.value, liveData2.value)
        }
        addSource(liveData2) {
            value = onChanged(liveData1.value, liveData2.value)
        }
    }
}

// switchMap approach
fun <A, B, C> combine(
    liveData1: LiveData<A>,
    liveData2: LiveData<B>,
    onChanged: (A, B) -> C
): LiveData<C> {
    return liveData1.switchMap { a ->
        liveData2.map { b ->
            onChanged(a, b)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该 …

android kotlin android-livedata switchmap mediatorlivedata

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