我是一名 iOS 開發人員,目前正在學習使用 Kotlin 進行 Android 開發。我有一個物件/共享實體(iOS 術語):
object AppAppearance {
val cornerRadius = "10dp"
}

如何在 XML 檔案中訪問上述內容?
<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>

uj5u.com熱心網友回復:
如果您想在 XML 中使用常量,則應該在 XML 中定義它們,而不是在 Kotlin 中。例如,在res/values/創建一個名為appearance.xml并放置的檔案:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="cornerRadius">10dp</dimen>
</resources>
您可以將其他行專案放在此檔案中的resources塊中。
在您使用它的檔案中:
<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 讀取值,但這不適用于常量。它讀取視圖附加到的活動/片段的成員屬性或函式。
如果這一切看起來令人費解和混亂,那是因為它是。Jetpack Compose UI 系統是他們直接在 Kotlin 代碼中創建 UI的新方法,因此您不必在語言之間來回切換。但它也是一個完全不同的 UI 模型(UI 是從具有邏輯的資料模型構建的,而不是強制地將 UI 連接到資料),因此它不是直接替代品。你可能會發現你更喜歡它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/514413.html
標籤:xml科特林
上一篇:設定在kotlin中創建的TextView元素的fontFamily
下一篇:地圖視圖示記并不總是可見
