커스텀 객체의 필드에 @InverseBinding 하는 방법.

조회수 485회
data class User(
    val name: String,
    val phone: String
)
...
<EditText
    ...
    android:text="@={user.name}"/>

<EditText
    ...
    android:text="@={user.phone}"/>

<Button
    ...
    android:enabled="@{!user.name.isEmpty() &amp;&amp; !user.phone.isEmpty()}"
/>

User 객체를 감싼 LiveData를 xml에서 다음과 같이 사용할 때, 유저의 필드로 값 자체는 제대로 갱신이 되지만, 변경에 따른 이벤트가 발생하지 않습니다. (버튼의 enabled)

왜 그런지는 알겠고, 당장은 리스너를 달아서 원하는 대로 동작하게 했으나,
리스너를 따로 붙여주는 거 부터가 역바인딩을 쓰는 이유가 없다고 생각해서 좋은 해결 방법은 아닌 거 같습니다.

혹시 더 좋은 방법이 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)