Android TextView:如何在键入文本时动态更改布局

问题描述 投票:0回答:2

我需要在用户在TextView字段上键入内容时将按钮动态设置为“可见”或“消失”。通过使用下面的语句,当按下Enter键时,我已经能够完成此操作,但是如果在用户键入或删除文本内容时按钮变为可见或立即消失,那将是非常不错的选择。有什么建议吗?

binding.textField.setOnEditorActionListener { v, actionId, event -> 
    if (v.text.toString().trim().isEmpty()){
        binding.button.visibility = View.GONE
    } else{
        binding.button.visibility = View.VISIBLE
    }

    return@setOnEditorActionListener true
}

谢谢您的关注!罗德里戈·托马兹(Rodrigo Tomaz)。

android imageview dynamiclayout
2个回答
1
投票

您可以在EditText上使用addTextChangedListener

喜欢这个:

binding.textField.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {

            if (editable.toString().trim().isEmpty()){
               binding.button.visibility = View.GONE
            } else{
               binding.button.visibility = View.VISIBLE
            }

        }
    });

希望有帮助:)


0
投票

您应该将textchangelistner添加到您的editext并在文本更改时隐藏按钮

binding.textField.addTextChangedListener(new TextWatcher() {

       @Override
       public void afterTextChanged(Editable s) {}

       @Override    
       public void beforeTextChanged(CharSequence s, int start,
         int count, int after) {
       }

       @Override    
       public void onTextChanged(CharSequence s, int start,
         int before, int count) {
        binding.button.visibility = View.GONE
       }
      });
© www.soinside.com 2019 - 2024. All rights reserved.