小编Arc*_*nes的帖子

协同程序:runBlocking vs coroutineScope

我正在阅读Coroutine Basics,试图理解和学习它.

这段代码有一部分:

fun main() = runBlocking { // this: CoroutineScope
    launch { 
        delay(200L)
        println("Task from runBlocking")
    }

    coroutineScope { // Creates a new coroutine scope
        launch {
            delay(900L) 
            println("Task from nested launch")
        }

        delay(100L)
        println("Task from coroutine scope") // This line will be printed before nested launch
    }

    println("Coroutine scope is over") // This line is not printed until nested launch completes
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

Task from coroutine scope
Task from runBlocking
Task from nested launch
Coroutine scope …
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-coroutines

34
推荐指数
5
解决办法
3880
查看次数

如何在 Jetpack Compose 中添加保证金?

您究竟如何才能在 中添加 Margin Jetpack Compose

我可以看到有一个Modifier用于填充,Modifier.padding(...)但我似乎无法找到一个用于边距的,或者我是瞎子吗?

请有人指导我。

非常感谢。

android android-jetpack-compose

31
推荐指数
6
解决办法
1万
查看次数

如何在颤振中设置文本行高?

所以在 Onboarding 下的 Material Design Spec 中:这里

明确规定:

32sp 线高

这是从标题文本底部到副标题文本基线的高度。

我的问题是如何在颤振中实现这一点。填充足以模仿这个规范吗?或者有其他更准确的方法来做到这一点?

这里

material-design flutter

26
推荐指数
2
解决办法
3万
查看次数

什么时候需要 Modifier.composed { ... }?

什么时候Modifier.composed { ... }有用?Modifier.padding()如果我可以简单地重来一遍,为什么我需要它Modifier.composed { PaddingModifier(...) }

android android-jetpack-compose

23
推荐指数
2
解决办法
8993
查看次数

使用Kotlin扩展函数将RxJava Observable转换为实时数据

我一直在使用库在我的代码中使用很多RxJava Observables转换.所以我想在RxJava Observable中添加一个扩展函数来轻松转换它们.LiveDataLiveDataReactiveStreams.fromPublisher()LiveData

这些是我的扩展功能:

fun <T> Flowable<T>.toLiveData() :  LiveData<T> {
    return LiveDataReactiveStreams.fromPublisher(this)
}

fun <T> Observable<T>.toLiveData(backPressureStrategy: BackpressureStrategy) :  LiveData<T> {
    return LiveDataReactiveStreams.fromPublisher(this.toFlowable(backPressureStrategy))
}

fun <T> Single<T>.toLiveData() :  LiveData<T> {
    return LiveDataReactiveStreams.fromPublisher(this.toFlowable())
}

fun <T> Maybe<T>.toLiveData() :  LiveData<T> {
    return LiveDataReactiveStreams.fromPublisher(this.toFlowable())
}

fun <T> Completable.toLiveData() :  LiveData<T> {
    return LiveDataReactiveStreams.fromPublisher(this.toFlowable())
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 这是一个好主意吗?
  2. 有没有更好的方法呢?
  3. 这些扩展功能可以更好吗?

PS

我是Kotlin的新手,所以我问这些问题.任何有用的东西将不胜感激.非常感谢你.

android kotlin rx-java2 android-livedata android-architecture-components

18
推荐指数
2
解决办法
6192
查看次数

Jetpack Compose 中的作用域状态

在所有应用程序中,总会有这三种状态范围: 状态

使用 Compose,可以通过以下方式实现“每个屏幕状态”:

NavHost(navController, startDestination = startRoute) {
    ...
    composable(route) {
       ...
       val perScreenViewModel = viewModel()  // This will be different from
    }
    composable(route) {
       ...
       val perScreenViewModel = viewModel()  // this instance
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

“应用程序状态”可以通过以下方式实现:

val appStateViewModel = viewModel()
NavHost(navController, startDestination = startRoute) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是对于“Scoped State”呢?我们如何在 Compose 中实现它?

android android-navigation android-viewmodel android-jetpack-compose

18
推荐指数
2
解决办法
2047
查看次数

SwiftUI @State 与绑定

我正在使用 Swift 和 SwiftUI 学习 iOS 编程。我知道的很少,我对 a@State和 a之间的区别感到非常困惑Binding<*>

如果我理解正确,Binding这只是技术上的,State但它不会更新视图。如果是这样的话,Binding如果我可以State用来做同样的事情,我为什么需要?

ios swiftui

17
推荐指数
6
解决办法
1万
查看次数

如何使用Gradle更改应用程序包的生成文件名?

因此,要在gradle android中更改生成的APK文件名,我可以执行以下操作:

applicationVariants.output.all {
    outputFileName = "the_file_name_that_i_want.apk"
}
Run Code Online (Sandbox Code Playgroud)

生成的App Bundle文件有类似的东西吗?如何更改生成的App Bundle文件名?

android gradle android-gradle-plugin android-app-bundle

16
推荐指数
5
解决办法
4216
查看次数

如何将 Fragment 的参数项添加到 Koin 依赖图中?

我有一个ViewModel它有它应该从采取的依赖Fragmentarguments

所以它是这样的:

class SomeViewModel(someValue: SomeValue)
Run Code Online (Sandbox Code Playgroud)

现在这个片段SomeValue在它的争论中收到了这样的:

class SomeFragment : Fragment() {
    val someViewModel: SomeViewModel by viewModel()

    companion object {
        fun newInstance(someValue: SomeValue) = SomeFragment().apply {
            arguments = bundleof("someKey" to someValue)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何添加SomeValueFragment's argumentsto Koin's 模块中获取的内容。

有没有办法让片段对 Koin 依赖图有所贡献?

android dependency-injection kotlin koin

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

在Flutter的嵌套导航器结构中,如何获得特定的导航器?

当我有Nested时,我遇到了这个问题Navigator。所以像

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      initialRoute: "/",
      routes: {
        '/': (context) => SomeOneView(),
        '/two': (context) => SomeTwoView(),
        '/three': (context) => SomeThreeView(),
      },
    );
  }
}

class SomeOneView extends StatefulWidget {
  @override
  _SomeOneViewState createState() => _SomeOneViewState();
}

class _SomeOneViewState extends State<SomeOneView> {
  @override
  Widget build(BuildContext context) {
   return Container(
      width: double.infinity,
      height: double.infinity,
      color: Colors.indigo,
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          MaterialButton(
            color: …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-navigation

9
推荐指数
2
解决办法
1456
查看次数