有什么办法可以改变按钮的可见性?
我尝试了以下代码。
<TextView
android:id="@+id/order_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textSize="@dimen/text_size_extra_larger"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center"
tools:text="Amount" />
<Button
android:id="@+id/clear_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_weight="1"
android:background="@android:color/transparent"
android:text="@string/clear"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="@dimen/text_size_normal"
android:visibility='@={orderAmount.getText().equals("0.0") ? View.GONE : View.VISIBLE}' />
当clear_button
中的文本为“ 0.0”时,我想使order_amount
消失。
我只想使用数据绑定表达式来完成此操作。
答案 0 :(得分:0)
在科特林:
update_all
在Java中:
clear_button.visibility = View.GONE //View.INVISIBLE
选项1:您需要从动态设置TextView文本的任何地方调用此方法,例如:
clear_button.setVisibility(View.GONE);
选项2:以编程方式将TextWatcher添加到您的TextView中,例如(Kotlin):
//... something something something
order_amount.text = amount
if(amount == "0.0") clear_button.visibility = View.GONE
在Java中:
order_amount.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(text: Editable?) {
if(text?.toString() == "0.0") clear_button.visibility = View.GONE
else clear_button.visibility = View.VISIBLE
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})