我是 Kotlin 的新手。我认为我需要以有条件的方式展示或隐藏 我怎么能在Kotlin做到这一点?
在Java中:
public void showHide(View view){
if (view.getVisibility() == View.VISIBLE) {
view.setVisibility(View.INVISIBLE);
} else {
view.setVisibility(View.VISIBLE);
}
}
答案 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
类的任何子类上调用这些方法。例如。 LinearLayout
,TextView
等。
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
}