MultiTypeAdapter(context!!, viewModel.dataSource, object : MultiTypeAdapter.MultiViewTyper {
override fun getViewType(item: Any): Int = when (item) {
is HomeViewModel.BannerItemViewModel -> TYPE_BANNER
is HomeViewModel.HotKeyItemViewModel -> TYPE_HOTKEY
else -> 0
}
}).apply {
addViewTypeToLayoutMap(TYPE_BANNER, R.layout.home_item_banner)
addViewTypeToLayoutMap(TYPE_HOTKEY, R.layout.home_item_hotkey)
addViewTypeToLayoutMap(0, R.layout.home_item_article)
itemDecorator = object : ItemDecorator {
override fun decorator(
holder: BindingViewHolder<ViewDataBinding>,
position: Int,
viewType: Int
) = when (viewType) {
TYPE_BANNER -> {
val binding = holder.binding as HomeItemBannerBinding
binding.listener = OnBannerListener {
context?.toast(binding.item!!.titles[it])
}
}
TYPE_HOTKEY -> itemHotKeyInitView(holder.binding as HomeItemHotkeyBinding)
else -> {
itemPresenter = object : ItemClickPresenter<Any> {
override fun onItemClick(v: View, item: Any) {
when (v.id) {
R.id.iv_like -> {
KLog.d(viewModel.dataSource.indexOf(item))
/*if (ACacheHelper.hasLogin()) {
val data = item as ArticleData.DatasBean
data.collect = !data.collect
} else {
openActivity(LoginActivity)
}*/
}
else -> {
KLog.d(viewModel.dataSource.indexOf(item))
}
}
}
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="item"
type="com.wyl.home.bean.ArticleData.DatasBean"/>
<variable
name="presenter"
type="io.ditclear.bindingadapter.ItemClickPresenter"/>
</data>
<android.support.v7.widget.CardView
android:layout_margin="3dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cv_item"
android:padding="16dp">
<TextView
android:id="@+id/tv_article_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="2"
android:text="@{item.title}"
android:textSize="@dimen/ui_content_l"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="content"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/tv_super_chapter_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@{item.superChapterName}"
tools:text="TextView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_article_title"/>
<TextView
android:id="@+id/tv_chapter_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="@{item.chapterName}"
tools:text="TextView"
android:textColor="@color/ui_article_type_color"
app:layout_constraintStart_toEndOf="@+id/tv_super_chapter_name"
app:layout_constraintTop_toTopOf="@+id/tv_super_chapter_name"/>
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="@{item.niceDate}"
tools:text="TextView"
app:layout_constraintStart_toEndOf="@+id/tv_chapter_name"
app:layout_constraintTop_toTopOf="@+id/tv_chapter_name"/>
<ImageView
android:id="@+id/iv_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{(v)->presenter.onItemClick(v,item)}"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:selected="@{item.collect}"
android:visibility="visible"
app:layout_constraintTop_toBottomOf="@+id/tv_article_title"
android:src="@drawable/ui_action_like_selector"/>
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
</layout>
D/HomeFragment.kt: [ (HomeFragment.kt:80)#OnItemClick ] 4
D/HomeFragment.kt: [ (HomeFragment.kt:89)#OnItemClick ] 5
D/HomeFragment.kt: [ (HomeFragment.kt:89)#OnItemClick ] 4
D/HomeFragment.kt: [ (HomeFragment.kt:80)#OnItemClick ] 4
D/HomeFragment.kt: [ (HomeFragment.kt:89)#OnItemClick ] 5
D/HomeFragment.kt: [ (HomeFragment.kt:80)#OnItemClick ] 5
D/HomeFragment.kt: [ (HomeFragment.kt:80)#OnItemClick ] 4