【问题标题】:Disable EditText but receive touch/click events禁用 EditText 但接收触摸/单击事件
【发布时间】:2018-10-22 12:49:18
【问题描述】:

我希望在每一行中都有 RecyclerviewEditText 视图。我需要为除第一行之外的每一行禁用EditText。我用

holder.edittext.isCursorVisible = false
holder.edittext.isClickable = false
holder.edittext.isFocusable = false
holder.edittext.isFocusableInTouchMode = false

但是,我希望每一行的ViewGroup,例如,Linear Layout 对于所有行都是可点击的。然后我需要在EditText 中接收点击事件并将其传递给ViewGroup,即使EditText 被禁用。有可能吗?

【问题讨论】:

  • 这个edittext是你直接子到父视图的吗?如果是,那么您的代码应该可以工作。如果没有,那么您需要将此属性添加到中间父级。
  • 是的,是直子。 Nilesh 的回答奏效了。我将其标记为已接受的答案。

标签: android android-layout android-edittext


【解决方案1】:

禁用编辑文本

您可以使用 holder.edittext.isFocusable = false 禁用您的EditText

然后我需要在EditText 中接收点击事件并将其传递给ViewGroup,即使EditText 被禁用。有可能吗?

您可以将ClickListener 设置为您的EditText,并使用performClick() 将点击事件传递给您的ViewGroup

  • performClick ()

    调用此视图的 OnClickListener(如果已定义)。执行与点击相关的所有正常操作:报告可访问性事件、播放声音等。

示例代码

public class MainActivity extends AppCompatActivity {


    EditText myEditText;
    LinearLayout rootView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myEditText = findViewById(R.id.myEditText);
        rootView = findViewById(R.id.rootView);

        myEditText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                rootView.performClick();

            }
        });

        rootView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "Prem", Toast.LENGTH_SHORT).show();
            }
        });
    }

}

编辑

根据您的以下评论 如何禁用我的 EditText 在触摸/单击时更改颜色,即使我将它设置为可聚焦 = false?

关注这个答案when selected add border shape for textView and editText ,

【讨论】:

  • 谢谢! @Nilesh,如何禁用我的 EditText 在触摸/单击时更改颜色,即使我将它设置为可聚焦 = false?
  • @Angelina 关注这个答案它会帮助你stackoverflow.com/questions/52353887/…
猜你喜欢
  • 2013-09-17
  • 1970-01-01
  • 2017-10-22
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
相关资源
最近更新 更多