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

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
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):
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
class UserDetailFragment: BaseFragment<UserDetailContract.Presenter>(), UserDetailContract.View {
mais j'ai une erreur de gradle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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