package com.example.smart.ui.projectevent import android.text.TextUtils import android.view.LayoutInflater import android.view.View import androidx.activity.viewModels import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.viewpager2.adapter.FragmentStateAdapter import com.example.basecore.BaseBindingActivity import com.example.smart.databinding.ActivityProjectEventBinding import com.example.smart.ui.projectevent.frag.SystemTreeFragment import com.example.basecore.util.toast import com.example.smart.ui.projectevent.bean.SystemTreeBean import com.google.android.material.tabs.TabLayoutMediator /** * 添加问题 */ class ProjectProblemActivity : BaseBindingActivity() { private val binding by lazy { ActivityProjectEventBinding.inflate(LayoutInflater.from(mContext)) } private val viewModel: ProjectProblemViewModel by viewModels() private lateinit var from: String private lateinit var taskId: String private lateinit var planId: String override fun initView() { transStatusBar() from = intent.data?.getQueryParameter("from") ?: "issue" taskId = intent.data?.getQueryParameter("id") ?: "" planId = intent.data?.getQueryParameter("plan_id") ?: "" if (from == "correct") { binding.titleLayout.setTitle("正确做法") } requestData() } override fun bindDataObserver() { super.bindDataObserver() viewModel.systemTreeBean.observe(this) { bindPage(it) binding.loadingLayout.loadNull() binding.viewPager.visibility = View.VISIBLE } } private fun requestData() { if (TextUtils.isEmpty(taskId)) { toast("任务不存在") return } viewModel.callSystemTree(taskId) { binding.loadingLayout.loadEmpty() binding.viewPager.visibility = View.GONE } } private fun bindPage(treeList : List) { binding.viewPager.adapter = PageAdapter(this, treeList) binding.run { TabLayoutMediator(tabLayout, viewPager) { tab, position -> tab.text = treeList[position].name }.attach() } } inner class PageAdapter(activity: FragmentActivity, val list: List) : FragmentStateAdapter(activity) { override fun createFragment(position: Int): Fragment { return SystemTreeFragment.newInstance(list[position]) } override fun getItemCount(): Int { return list.size } } override fun getRootView() = binding.root }