airbnb / epoxy

Epoxy is an Android library for building complex screens in a RecyclerView
https://goo.gl/eIK82p
Apache License 2.0
8.51k stars 728 forks source link

EpoxyInterop using @EpoxyModelClass #1356

Open wildhanstrdy opened 1 year ago

wildhanstrdy commented 1 year ago

Hi, I try to use EpoxyInterop using a class that is annotated with @EpoxyModelClass. For example

@EpoxyModelClass(layout = R.layout.my_epoxy_layout)
abstrac class MyEpoxyClass: EpoxyModelWithHolder<MyViewHolder>(){
......
}

My XML layout

<androidx.cardview.widget.CardView>
    <LinearLayout>
    .........
    </LinearLayout>
</androidx.cardview.widget.CardView>

Then in my composable

@Composable
fun MainView(){
EpoxyInterop<MyEpoxyClassModel_>{
...
}

}

Then it throws a run time exception like this

java.lang.ClassCastException: androidx.cardview.widget.CardView cannot be cast to com.example.homefragment.models.MyViewHolder
                                                                                                        ata com.example.homefragment.models.MyEpoxyClass.bind(MyEpoxyClass.kt:18)
                                                                                                        at com.example.compose.MainScreen$MyEpoxyClass$3$invoke$lambda$1$$inlined$EpoxyInterop$2.invoke(ComposeInterop.kt:105)
                                                                                                        at com.example.compose.MainScreen$MyEpoxyClass$3$invoke$lambda$1$$inlined$EpoxyInterop$2.invoke(ComposeInterop.kt:96)

It works perfectly if I use @ModelView instead of @EpoxyModelClass. Is there any way to use the @EpoxyModelClass in EpoxyInterop<>?. Thanks