【问题标题】:Why is the text of snack displayed only one time? [duplicate]为什么零食的文字只显示一次? [复制]
【发布时间】:2020-05-04 06:33:50
【问题描述】:

以下代码基于项目架构示例,您可以查看here

在我看来,UI 会先显示带有R.string.description_hint 的小吃文本,然后显示带有R.string.empty_task_message 的小吃文本。

但是我发现只有R.string.empty_task_message的snack文字显示出来了,如何解决?

TasksFragment.kt

private fun setupSnackbar() {
        view?.setupSnackbar(this, viewModel.snackbarText, Snackbar.LENGTH_SHORT)
        viewModel.setMy1()
        //Wait until UI updated
        viewModel.setMy2()       
}

TasksViewModel.kt

class TasksViewModel(
    private val tasksRepository: TasksRepository,
    private val savedStateHandle: SavedStateHandle
) : ViewModel() {


  private val _snackbarText = MutableLiveData<Event<Int>>()
  val snackbarText: LiveData<Event<Int>> = _snackbarText

    fun setMy1(){
        _snackbarText.value=Event(R.string.description_hint)
    }

    fun setMy2(){
        _snackbarText.value=Event(R.string.empty_task_message)
    }
    ...

}

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    您可以使用 Snackbar.Callback。您可以拥有包含要显示的消息的列表,一个调用函数以显示带有回调的小吃栏消息,并将回调添加到您的小吃栏,以及要更新的实时数据(当从回调中调用小吃栏 onDismiss 时)以触发显示小吃栏消息消息列表中的下一条消息(例如 index + 1)。

    Snackbar callback doc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多