Kotlin - 切换工具提示

时间:2018-05-30 15:14:16

标签: android kotlin

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

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
}

3 个答案:

答案 0 :(得分:2)

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

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
}

答案 1 :(得分:0)

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

   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
    }

答案 2 :(得分:0)

试试这个:

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
}