【问题标题】:Change lambda expression return type to Unit将 lambda 表达式返回类型更改为 Unit
【发布时间】:2021-05-11 20:56:23
【问题描述】:

我正在使用 Kotlin 语言,并且我的应用中有底部导航视图。我想实现 setOnNavigationItemSelectedListener 方法来更改我的 viewPager。

但是,当我实现它时,它给了我错误,即 'change lambda expression return type to Unit' 。我不明白为什么。我在网上查了一下,有些人和我使用相同的行代码,但他们没有收到错误。我将分享错误截图。

此外,当我将 setOnNavigationItemSelectedListener 更改为 etOnNavigationItemReselectedListener 时,它不会给出错误。但是我需要 selectItemListener 而不是 Reselect 。

这是我的方法。

【问题讨论】:

    标签: android kotlin lambda android-viewpager bottomnavigationview


    【解决方案1】:

    在您的 lambda 中添加 true,就在 when 语句之后。 This functional interface 要求您返回一个布尔值。 lambda 的最后一个表达式是返回值。

    对于重复性较低的代码,可以考虑修改如下:

    bottomNavigationView.setOnNavigationItemSelectedListener {
        val page = when (it.itemId) {
            R.id.navigator_main -> 0
            R.id.navigator_search_food -> 1
            R.id.navigator_list_of_week -> 2
            R.id.navigator_for_students -> 3
            else -> -1
        }
        viewPager.setCurrentItem(page)
        true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      相关资源
      最近更新 更多