Android Kotlin-切换工具提示

Android Kotlin-切换工具提示,android,kotlin,Android,Kotlin,这目前是可行的,但我正试图通过在一个方法中调用它来减少代码。它隐藏并显示我创建的工具提示。我试图做的是将以下内容放在一个方法中 private fun showToolTips() { mMarker.showInfoWindow() for (tv in mToolTipArrLst) { tv.isEnabled = true tv.visibility = View.VISIBLE } mToolTipVisibility =

这目前是可行的,但我正试图通过在一个方法中调用它来减少代码。它隐藏并显示我创建的工具提示。我试图做的是将以下内容放在一个方法中

private fun showToolTips() {
    mMarker.showInfoWindow()
    for (tv in mToolTipArrLst) {
        tv.isEnabled = true
        tv.visibility = View.VISIBLE
    }
    mToolTipVisibility = true
}

private fun hideToolTips() {
    mMarker.hideInfoWindow()
    for (tv in mToolTipArrLst) {
        tv.isEnabled = false
        tv.visibility = View.INVISIBLE
    }
    mToolTipVisibility = false
}

您尚未指定要以何种方式组合这些方法(例如,带参数或不带参数)。但这就是我想到的

   private fun toggleToolTips() {
        if(mToolTipVisibility) 
          mMarker.hideInfoWindow()
        else 
         mMarker.showInfoWindow()

        for (tv in mToolTipArrLst) {
            tv.isEnabled = !tv.isEnabled;

            if (tv.isEnabled)
              tv.visibility = View.VISIBLE
            else
              tv.visibility = View.INVISIBLE

        }
        mToolTipVisibility = tv.isEnabled
    }

您可以使用带有布尔值的单个方法来指示是否显示或隐藏它:

fun showOrHide(show: Boolean) {
    if (show) mMarker.showInfoWindow() else mMarker.hideInfoWindow()
    for (tv in mToolTipArrLst) {
        tv.isEnabled = show
        tv.visibility = if (show) View.VISIBLE else View.INVISIBLE
    }
    mToolTipVisibility = show
}
试试这个:

private fun fixToolTips(flag: Boolean) {
    if (flag) mMarker.showInfoWindow() else mMarker.hideInfoWindow() 
    for (tv in mToolTipArrLst) {
        tv.isEnabled = flag
        tv.visibility = if (flag) View.VISIBLE else View.INVISIBLE
    }
    mToolTipVisibility = flag
}

你的问题在哪里?您已经有一个存储当前状态的字段
mToolTipVisibility
。。。