package com.example.smart.ui.main.page
|
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.widget.ImageView
|
import androidx.fragment.app.viewModels
|
import androidx.recyclerview.widget.GridLayoutManager
|
import com.bumptech.glide.Glide
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
import com.bumptech.glide.request.RequestOptions
|
import com.example.basecore.util.ScreenUtil
|
import com.example.basecore.util.dp2px
|
import com.example.basecore.util.showOnlyToast
|
import com.example.smart.R
|
import com.example.smart.ui.home.BasePageFragment
|
import com.example.smart.databinding.FragmentMainBinding
|
import com.example.smart.ui.main.page.bean.HomeBannerBean
|
import com.example.smart.ui.main.page.bean.MainContentBean
|
import com.example.smart.ui.main.page.view.ContentAdapter
|
import com.example.smart.ui.main.page.view.GridItem
|
import com.example.smart.ui.viewer.BannerListImageAdapter
|
import com.youth.banner.holder.BannerImageHolder
|
import com.youth.banner.indicator.CircleIndicator
|
|
|
class MainFragment : BasePageFragment(), View.OnClickListener {
|
|
private val viewModel: MainViewModel by viewModels()
|
|
companion object {
|
fun newInstance() = MainFragment()
|
}
|
|
private val binding by lazy {
|
FragmentMainBinding.inflate(LayoutInflater.from(context))
|
}
|
|
private val topBannerList = ArrayList<HomeBannerBean>()
|
|
private val botBannerList = ArrayList<HomeBannerBean>()
|
|
|
override fun getRootView() = binding.root
|
|
override fun initData() {
|
// viewModel.requestProfile { }
|
|
}
|
|
override fun initView() {
|
|
topBannerList.add(HomeBannerBean())
|
topBannerList.add(HomeBannerBean())
|
topBannerList.add(HomeBannerBean())
|
botBannerList.add(HomeBannerBean())
|
botBannerList.add(HomeBannerBean())
|
initTopBanner()
|
|
initRecyclerview()
|
initBotBanner()
|
}
|
|
|
private fun initRecyclerview() {
|
|
val list = ArrayList<MainContentBean>()
|
list.add(MainContentBean("计划", R.mipmap.ic_home_plan.toString()))
|
list.add(MainContentBean("待办", R.mipmap.ic_home_todo.toString()))
|
list.add(MainContentBean("签到", R.mipmap.ic_home_sign.toString()))
|
// list.add(MainContentBean("通知", R.mipmap.ic_home_info.toString()))
|
// list.add(MainContentBean("新建", R.mipmap.ic_home_create.toString()))
|
list.add(MainContentBean("更多", R.mipmap.ic_home_more.toString()))
|
val mAdapter = mContext?.let { ContentAdapter(it, list) }
|
val count = 4
|
binding.recyclerView.apply {
|
// 添加间距
|
addItemDecoration(
|
GridItem(
|
count,
|
ScreenUtil.getScreenWidth(mContext),
|
mContext!!.dp2px(36)
|
),
|
)
|
layoutManager = GridLayoutManager(mContext, count)
|
adapter = mAdapter
|
|
}
|
|
}
|
|
private fun initTopBanner() {
|
binding.banner.setAdapter(object : BannerListImageAdapter<HomeBannerBean>(topBannerList) {
|
|
override fun onBindView(
|
holder: BannerImageHolder,
|
data: HomeBannerBean,
|
position: Int,
|
size: Int
|
) {
|
val url = when (position) {
|
0 -> {
|
R.mipmap.ic_top_banner1
|
}
|
1 -> {
|
R.mipmap.ic_top_banner2
|
}
|
else -> {
|
R.mipmap.ic_top_banner3
|
}
|
}
|
Glide.with(holder.itemView)
|
.load(url)
|
.into(holder.imageView)
|
holder.imageView.scaleType = ImageView.ScaleType.CENTER_CROP
|
holder.imageView.setOnClickListener {
|
mContext?.showOnlyToast("公告位稍后就到")
|
}
|
}
|
|
})
|
.addBannerLifecycleObserver(viewLifecycleOwner)
|
.setIndicator(CircleIndicator(mContext), true)
|
|
}
|
|
private fun initBotBanner() {
|
binding.botBanner.setAdapter(object :
|
BannerListImageAdapter<HomeBannerBean>(botBannerList) {
|
|
override fun onBindView(
|
holder: BannerImageHolder,
|
data: HomeBannerBean,
|
position: Int,
|
size: Int
|
) {
|
val url = if (position == 0) {
|
R.mipmap.ic_bot_banner1
|
} else {
|
R.mipmap.ic_bot_banner2
|
}
|
Glide.with(holder.itemView)
|
.load(url)
|
.apply(RequestOptions.bitmapTransform(RoundedCorners(10)))
|
.into(holder.imageView)
|
holder.imageView.setOnClickListener {
|
mContext?.showOnlyToast("点击了通知位...")
|
}
|
}
|
|
})
|
.addBannerLifecycleObserver(viewLifecycleOwner)
|
.setIndicator(CircleIndicator(mContext), true)
|
}
|
|
override fun onBindObserver() {
|
super.onBindObserver()
|
viewModel.run {}
|
}
|
|
|
override fun onClick(v: View) {
|
when (v.id) {
|
|
|
}
|
}
|
|
|
}
|