首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin-如何访问XML文件中的对象/共享实例

Kotlin-如何访问XML文件中的对象/共享实例
EN

Stack Overflow用户
提问于 2022-10-14 13:19:29
回答 1查看 21关注 0票数 0

我是一名iOS开发人员,目前正在使用Kotlin学习安卓开发。我有一个对象/共享实例(iOS术语):

代码语言:javascript
复制
object AppAppearance {
    val cornerRadius = "10dp"
}

如何在XML文件中访问上面的内容?

代码语言:javascript
复制
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <corners android:radius="${AppAppearance.cornerRadius}"/> // <---- This doesn't work
    <solid android:color="@android:color/holo_green_dark"/>

</shape>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 13:33:53

如果要在XML中使用常量,则应该用XML而不是Kotlin定义它们。例如,在res/values/中创建一个名为appearance.xml的文件并放置:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="cornerRadius">10dp</dimen>
</resources>

可以将此文件中的其他行项放在resources块中。

在你使用它的文件中:

代码语言:javascript
复制
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <corners android:radius="@dimen/cornerRadius"/>
    <solid android:color="@android:color/holo_green_dark"/>

</shape>

可以使用数据绑定从Kotlin读取值,但这并不适用于常量。它读取附加视图的活动/片段的成员属性或函数。

如果所有这一切看起来复杂和混乱,那是因为它是。喷气式组合 UI系统是他们用Kotlin代码直接创建UI的新方法,所以您不必在语言之间来回跳。但它也是一个完全不同的UI模型( UI是根据逻辑构建的数据模型,而不是您必须将UI与数据连接起来),所以它不是直接的替代。不过,你可能会发现你更喜欢它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74069864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档