package com.example.smart.ui.main
|
|
import android.content.Context
|
import android.graphics.Color
|
import android.view.View
|
import android.widget.FrameLayout
|
import androidx.lifecycle.Observer
|
import com.example.basecore.base.BaseContextViewModel
|
import com.example.basecore.util.dp2px
|
import com.example.smart.R
|
import com.example.smart.observer.TabEventProvider
|
import com.example.smart.observer.data.HomeTabData
|
import com.example.smart.ui.home.BasePageFragment
|
import com.example.smart.ui.home.home.HomeFragment
|
import com.example.smart.ui.home.mine.MineFragment
|
import com.example.smart.ui.main.page.MainFragment
|
import com.example.smart.widget.HomeTabLayout
|
import com.example.smart.widget.HomeTabLayout.Companion.buildItem
|
|
|
class MainViewModel : BaseContextViewModel() {
|
|
|
val tabProvider: TabEventProvider = TabEventProvider()
|
private val tabObserver = TabObserver()
|
|
init {
|
initObserver()
|
}
|
|
private fun initObserver() {
|
tabProvider.homeTabObserver.observeForever(tabObserver)
|
}
|
|
private inner class TabObserver : Observer<HomeTabData> {
|
override fun onChanged(value: HomeTabData) {
|
|
}
|
}
|
|
|
fun generateTab(context: Context, container: FrameLayout) {
|
val tabLayout = HomeTabLayout.create(context, tabProvider)
|
val itemHome = buildItem(context, R.drawable.selector_tab_home, "首页")
|
val itemMine = buildItem(context, R.drawable.selector_tab_personal, "我的")
|
tabLayout.addItem(itemHome).addItem(itemMine)
|
container.addView(tabLayout)
|
|
|
val maskView = View(context)
|
val maskLp =
|
FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, context.dp2px(0.5f))
|
maskView.layoutParams = maskLp
|
maskView.setBackgroundColor(Color.parseColor("#f5f5f5"))
|
container.addView(maskView)
|
}
|
|
fun generatePage(): ArrayList<BasePageFragment> {
|
val pageContainer = ArrayList<BasePageFragment>()
|
val feedPage = MainFragment.newInstance()
|
val minePage = MineFragment.newInstance()
|
|
pageContainer.add(feedPage)
|
pageContainer.add(minePage)
|
return pageContainer
|
}
|
|
override fun onCleared() {
|
super.onCleared()
|
tabProvider.homeTabObserver.removeObserver(tabObserver)
|
}
|
|
|
}
|