添加了顶部时间更新

This commit is contained in:
zxj
2025-07-16 11:36:56 +08:00
parent 229591dcb3
commit b68c967d82
12 changed files with 344 additions and 4 deletions
@@ -6,6 +6,12 @@ import android.view.WindowManager
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.viewbinding.ViewBinding
import com.sw.inbound.utils.DateTimeUtils
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
/**
* activity 基类
@@ -14,7 +20,9 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
protected lateinit var binding: VB
private set
private var headerBinding: ItemTitleTimeBinding? = null
protected lateinit var context: Context
private var timeJob: Job? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -25,16 +33,33 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
)
context = this
binding = inflateViewBinding()
headerBinding = inflateTitleBinding()
setContentView(binding.root)
updateTime()
initialize()
}
fun updateTime() {
headerBinding?.let {
val scope = CoroutineScope(Dispatchers.Main)
timeJob = scope.launch {
DateTimeUtils.realTimeChineseDateFlow()
.collect { (date, time) ->
headerBinding!!.tvLeftDate.text = date
headerBinding!!.tvRightTime.text = time
}
}
}
}
protected abstract fun inflateViewBinding(): VB
protected abstract fun inflateTitleBinding(): ItemTitleTimeBinding?
protected abstract fun initialize()
override fun onDestroy() {
timeJob?.cancel()
super.onDestroy()
}
}