增加多点列表
This commit is contained in:
@@ -38,6 +38,7 @@ import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager
|
||||
import com.navinfo.omqs.tools.LayerConfigUtils
|
||||
import com.navinfo.omqs.ui.activity.BaseActivity
|
||||
import com.navinfo.omqs.ui.fragment.console.ConsoleFragment
|
||||
import com.navinfo.omqs.ui.fragment.itemlist.ItemListFragment
|
||||
import com.navinfo.omqs.ui.fragment.offlinemap.OfflineMapFragment
|
||||
import com.navinfo.omqs.ui.fragment.qsrecordlist.QsRecordListFragment
|
||||
import com.navinfo.omqs.ui.fragment.signMoreInfo.SignMoreInfoFragment
|
||||
@@ -390,6 +391,25 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.liveDataItemList.observe(this) {
|
||||
if (leftFragment == null || leftFragment !is ItemListFragment) {
|
||||
leftFragment = ItemListFragment {
|
||||
binding.mainActivityLeftFragment.visibility = View.GONE
|
||||
supportFragmentManager.beginTransaction().remove(leftFragment!!).commit()
|
||||
leftFragment = null
|
||||
null
|
||||
}
|
||||
binding.mainActivityLeftFragment.visibility = View.VISIBLE
|
||||
supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.main_activity_left_fragment, leftFragment!!)
|
||||
.commit()
|
||||
} else {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.show(leftFragment!!)
|
||||
.commit()
|
||||
}
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
// 初始化地图图层控制接收器
|
||||
FlowEventBus.subscribe<List<ImportConfig>>(
|
||||
|
||||
@@ -112,6 +112,11 @@ class MainViewModel @Inject constructor(
|
||||
*/
|
||||
val liveDataSignMoreInfo = MutableLiveData<RenderEntity>()
|
||||
|
||||
/**
|
||||
* 捕捉到的itemList
|
||||
*/
|
||||
val liveDataItemList = MutableLiveData<List<RenderEntity>>()
|
||||
|
||||
private var traceTag: String = "TRACE_TAG"
|
||||
|
||||
/**
|
||||
@@ -473,8 +478,10 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
)
|
||||
|
||||
if (itemList.size > 0) {
|
||||
if (itemList.size == 1) {
|
||||
liveDataSignMoreInfo.postValue(itemList[0])
|
||||
} else {
|
||||
liveDataItemList.postValue(itemList)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.navinfo.omqs.ui.fragment.itemlist
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.collect.library.enums.DataCodeEnum
|
||||
import com.navinfo.omqs.databinding.AdapterItemBinding
|
||||
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
||||
import com.navinfo.omqs.ui.other.BaseViewHolder
|
||||
|
||||
class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = null) :
|
||||
BaseRecyclerViewAdapter<RenderEntity>() {
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
|
||||
val viewBinding =
|
||||
AdapterItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
return BaseViewHolder(viewBinding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val binding = holder.viewBinding as AdapterItemBinding
|
||||
var renderEntity = data[position]
|
||||
|
||||
binding.name.text = DataCodeEnum.findTableNameByCode(renderEntity.code)
|
||||
binding.root.setOnClickListener {
|
||||
if (itemListener != null) {
|
||||
itemListener!!.invoke(position, renderEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.navinfo.omqs.ui.fragment.itemlist
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.navinfo.omqs.databinding.FragmentItemListBinding
|
||||
import com.navinfo.omqs.ui.activity.map.MainViewModel
|
||||
import com.navinfo.omqs.ui.fragment.BaseFragment
|
||||
import com.navinfo.omqs.ui.widget.RecycleViewDivider
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
|
||||
@AndroidEntryPoint
|
||||
class ItemListFragment(private var backListener: ((ItemListFragment) -> Unit?)? = null) :
|
||||
BaseFragment() {
|
||||
private var _binding: FragmentItemListBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
private val viewModel by activityViewModels<MainViewModel>()
|
||||
private val adapter by lazy {
|
||||
ItemAdapter { _, data ->
|
||||
viewModel.showSignMoreInfo(data)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
|
||||
): View {
|
||||
_binding = FragmentItemListBinding.inflate(inflater, container, false)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
binding.itemListRecyclerview.layoutManager = LinearLayoutManager(requireContext())
|
||||
binding.itemListRecyclerview.adapter = adapter
|
||||
binding.itemListRecyclerview.addItemDecoration(
|
||||
RecycleViewDivider(
|
||||
requireContext(),
|
||||
LinearLayoutManager.VERTICAL
|
||||
)
|
||||
)
|
||||
viewModel.liveDataItemList.observe(viewLifecycleOwner) {
|
||||
adapter.refreshData(it)
|
||||
}
|
||||
binding.taskBack.setOnClickListener {
|
||||
backListener?.invoke(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user