使用 kotlin/compose 与 java/xml 指南相比

问题描述 投票:0回答:1

我想我应该说我对 kotlin 和 compose 很陌生,我只用过 java/xml 的项目,我在这里很困惑。

使用java,我们为每个屏幕提供具有自己的逻辑/设计的片段。这里我有一个活动,我把所有的应用程序逻辑放在那里? 这是一个更大的项目,但我认为它根本不起作用。我很困惑如何启动该项目并构建它。如何将所有应用程序逻辑及其所有屏幕放入一个文件中?最重要的是,我无法从可组合函数执行其他逻辑,我必须为每个可组合函数创建大量回调,以了解输入的内容并对其执行任何操作。

我只需要一些指导,提前致谢!

android kotlin android-jetpack-compose android-jetpack
1个回答
4
投票

你的问题范围相当广泛。

就项目结构而言,Compose 不必与活动/片段方法有很大不同。您可以考虑将可组合项与片段(或某些情况下的活动)进行比较。例如,您之前可能有

LoginFragment
,现在您将有一个名为
LoginScreen
的可组合项。

您可以使用相同的架构和设计模式,例如这两种方法都可以使用 MVVM,但实现方式略有不同。

您可以以相同的方式组织应用程序层,例如UI/域/数据,Compose 只是一个替代的 UI 层。

对于自动锁定,这也没有什么不同,您需要观察正确的生命周期事件,例如

onStop
,然后有一些逻辑来锁定应用程序,例如这可能会调用视图模型上的方法,将某些状态更改为“锁定”。

绝对不要尝试将所有应用程序逻辑放在一个活动中。事实上,您可能不应该使用 Compose 将任何逻辑放入您的活动中。更多地将其视为您的 Compose 应用程序的容器。

从活动角度来看,许多 Compose 应用程序可能就像这样简单:

class MainActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        setContent {
            MyApp() // <-- A composable function
        }
    }
}

可能值得花一些时间查看 Compose 入门指南,它应该可以帮助您理清思路并为您指明正确的方向。

© www.soinside.com 2019 - 2024. All rights reserved.