Bonjour,
Su un projet Kotlin, j'utilise le databinding avec un include pour inclure un layout.
Soit dans un un fragment_user_detail.xml, j'inclue le menu
1 2 3 4 5 6 7
| <data>
<import type="sqli.com.socialkit.userDetail.UserDetailFragment" />
<variable name="presenter" type="sqli.com.socialkit.userDetail.UserDetailContract.Presenter" />
<variable name="fragment" type="UserDetailFragment" />
</data>
<include layout="@layout/menu" bind:presenter="@{presenter}" bind:fragment="@{fragment}" /> |
Dans le menu.xml j'inclue le type BaseFragment car UserDetailFragment hérite de Base Fragment (je donne BaseFragment car d'autres layout vont inclure le menu.xml, pas seulement UserDetailFragment mais d'autres qui héritent de BaseFragment):
1 2 3 4
| <data>
<variable name="presenter" type="sqli.com.socialkit.BaseUserPresenter" />
<variable name="fragment" type="sqli.com.socialkit.common.BaseFragment" />
</data> |
L'héritage :
class UserDetailFragment: BaseFragment<UserDetailContract.Presenter>(), UserDetailContract.View {
mais j'ai une erreur de gradle
1 2
| Caused by: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'bind:fragment' with parameter type userDetail.UserDetailFragment on databinding.MenuBinding. file:/Android/app/src/main/res/layout/fragment_user_detail.xml loc:17:86 - 17:93 ****\ data binding error **** |
Le type BaseFragment n'étant pas le meme que UserDetailFragment.
Comment éviter ca ?
Merci d'avance
Partager