【问题标题】:Building a preference screen with Android Jetpack Compose使用 Android Jetpack Compose 构建首选项屏幕
【发布时间】:2021-08-09 21:20:24
【问题描述】:

我必须构建一个新的 Android 应用程序。由于 Jetpack Compose 现在稳定了,我想用它来构建整个 UI。此外,我还需要一个偏好/设置屏幕,用户可以在其中指定他的偏好。根据文档,仍然建议通过 Fragments 执行此操作。 https://developer.android.com/guide/topics/ui/settings

我还发现一个外部库会以 compose 方式提供此功能。 https://github.com/alorma/Compose-Settings

以前有人做过吗?这样做的“最干净”的方式是什么?

谢谢

【问题讨论】:

    标签: android android-jetpack android-jetpack-compose


    【解决方案1】:

    我在 compose 中实现了一个应用程序,并使用 Jetpack Compose 中可用的工具创建了设置屏幕,没有片段。

    我这样做的方法是为每个设置选项创建一个可组合的选项,其中包含一个标题、可选副标题和一个复选框,用于指示该选项是否启用。

    然后将这些选项添加到列(或网格,如果您有平板电脑,很容易在 compose 中同时支持两者);您只需将复选框上的点击挂钩到您的视图模型即可更改设置,然后刷新 UI。

    如果您有其他类型的设置条目,您也可以为这些条目定义自己的可组合项。在我的情况下,我有其他设置选项可以打开一个对话框,用户可以在其中配置一些参数,我还有另一个用于这种设置行的可组合函数。

    这是个人意见,但我更愿意远离 3rd 方库,除非 a) 它们提供重要价值,b) 它们来自提供某种维护和错误修复保证的来源。我不知道你提到的那个库,但是如果你包含 3rd 方库,你需要意识到你正在放弃对应用程序部分的控制,所以你需要平衡成本/收益比。

    【讨论】:

    • 我对 3rd 方库有相同的看法。因此,对于管理状态,即在应用重新启动后,您使用 rememberSavable? developer.android.com/jetpack/compose/state#restore-ui-state
    • 是的,如果您想在重新创建过程中保留某些内容,可以使用 rememberSaveable,或将其存储在视图模型中(后者更可取)。
    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2022-08-07
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多