如何在Kotlin中设置知名度?

时间:2018-03-21 09:03:00

标签: android kotlin

我是 Kotlin 的新手。我认为我需要以有条件的方式展示或隐藏 我怎么能在Kotlin做到这一点?

在Java中:

 public void showHide(View view){
        if (view.getVisibility() == View.VISIBLE) {
            view.setVisibility(View.INVISIBLE);
        } else {
            view.setVisibility(View.VISIBLE);
        }
    }

10 个答案:

答案 0 :(得分:11)

在回答这个问题时,我相信Kotlin风格的方法也可以写成:

inp = tf.placeholder(tf.float32, shape=(batch_size, C, 1+x+y, feature_size))
s1 = inp[:, :, 0:1, :]
sx = tf.reduce_sum(inp[:, :, 1:x+1, :], axis=2, keepdims=True)
sy = tf.reduce_sum(inp[:, :, -y:, :], axis=2, keepdums=True)
result = tf.concat((s1, sx, sy), axis=2)

答案 1 :(得分:5)

您可以在extension function中执行此操作:

  "threadId":"pool-1-thread-3", "message":"Message received GenericMessage [payload=byte[0], headers={ip_tcp_remotePort=*****, ip_connectionId=localhost:*****:*****:d313c398-fc80-48dd-b9c1-f447c9172f09, ip_localInetAddress=/127.0.0.1, ip_address=127.0.0.1, id=1fd69791-c300-787b-c5cc-281a360ae8f4, ip_hostname=localhost, timestamp=1521623822108}]"

可以像这样使用:

fun View.toggleVisibility() {
    if (visibility == View.VISIBLE) {
        visibility = View.INVISIBLE
    } else {
        visibility = View.VISIBLE
    }
}

答案 2 :(得分:4)

您可以简单地做到这一点。

idTextview.isVisible = true
idTextview.isVisible = false

答案 3 :(得分:3)

您可以使用Android Studio进行转换:单击要转换的Java文件,选择Code - >将Java文件转换为Kotlin文件,看看神奇。 结果是:

fun showHide(view: View) {
        if (view.visibility == View.VISIBLE) {
            view.visibility = View.INVISIBLE
        } else {
            view.visibility = View.VISIBLE
        }
    }

答案 4 :(得分:1)

这就是我在Kotlin中处理视图可见性的方法。可以在View类的任何子类上调用这些方法。例如。 LinearLayoutTextView等。

VISIBLE / GONE:

// @BindingAdapter("visibleOrGone")
fun View.visibleOrGone(visible: Boolean) {
    visibility = if(visible) View.VISIBLE else View.GONE
}

VISIBLE / INVISIBLE:

// @BindingAdapter("visibleOrInvisible")
fun View.visibleOrInvisible(visible: Boolean) {
    visibility = if(visible) View.VISIBLE else View.INVISIBLE
}

<强>数据绑定: 如果您还想将上述方法与数据绑定一起使用,请取消注释@BindingAdapter

<FrameLayout
    app:visibleOrGone="@{viewModel.visibleView}"
    ...
    />

<EditText
    app:visibleOrInvisible="@{viewModel.visibleView}"
    ...
    />

我的ViewModel课程如下:

class LoginViewModel {
    val visibleView = ObservableBoolean()
}

答案 5 :(得分:0)

您可以使用以下代码:

fun View.isVisible(): Boolean {
    return visibility == View.VISIBLE
}

并且:

fun View.setVisible(visible: Boolean) {
    visibility = if (visible) {
        View.VISIBLE
    } else {
        View.GONE
    }
}

您可以使用:

if (text_view.isVisible()) {
    text_view.setVisible(false)
}

答案 6 :(得分:0)

科特林的一种简单方法:

fun toggleView(view: View) {
    view.isVisible = !view.isVisible
}

答案 7 :(得分:0)

如果要显示图标

 ic_back.visibility = View.VISIBLE

,如果您想消失了,请尝试:

ic_back.visibility = View.GONE

答案 8 :(得分:0)

您可以使用.isVisible命令获取视图的可见状态

我会告诉你如何。

   val menu: ConstraintLayout = findViewById(R.id.layMenu)

    if (menu.isVisible==false){
        //view is not visible
    } else {
        //view is visible
    }

答案 9 :(得分:0)

如果“视图”最初是可见的,则可以使用“异或”运算符来切换可见性。

view.visibility = view.visibility.xor(View.GONE)

但是正确的方法是使用内联var View.isVisible

view.isVisible = !isVisible


inline var View.isVisible: Boolean
    get() = visibility == View.VISIBLE
    set(value) {
        visibility = if (value) View.VISIBLE else View.GONE
    }