close
相信我們都有用過 Navigation Component 裡面的 Safe Args
他可包含許多型態
- Integer
- Float
- Long
- Boolean
- String
- Resource Reference
- Parcelable
- Serializable
- Enum
今天踩到的是在使用 Parcelable 時遇上的問題
Caused by: java.lang.RuntimeException: Exception inflating com.xxx.tw.debug:navigation/main_nav_graph line 50
這個 message 表示我們的 graph 有錯誤
而且在 argument 的型別上會有提示 error type : return type for function cannot be resolved
所以我看了一下此次 commit 的改動,發現是新增了 Parcelable Argement 的原故
我的 class 如下
data class ExternalVerificationCheckResponse(
val verifyDetailObject: VerifyDetailObject? = null
) {
@Parcelize
data class VerifyDetailObject(
val isUserNeedVerify: Boolean = false
) : Parcelable
}
而我的 graph 定義如下
<argument
android:name="verifyDetailObject"
app:argType="com.linebank.vo.ecosystem
.ExternalVerificationCheckResponse
.VerifyDetailObject" />
這邊有一個小地方要注意
inner class 的表示要以 $ 而不是 。
因此應該要改為
com.linebank.vo.ecosystem
.ExternalVerificationCheckResponse
$VerifyDetailObject
這樣就成功解決問題囉
文章標籤
全站熱搜