【问题标题】:Removing Focus In Edit Text删除编辑文本中的焦点
【发布时间】:2011-08-25 22:06:17
【问题描述】:

我试图让编辑文本在接收触摸输入的同时不会获得焦点(这会显示软键盘和闪烁的光标)。

显然,目前,如果我尝试使用 setFocusable(false) 和 setFocusableInTouchMode(false) 或 setEnabled(false) 等方法,它不会收到任何触摸输入。

我该怎么办?

更新:

editText = (EditText) = layout.findViewById(R.id.edittext);
    editText.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            return true;
        } 
  });

【问题讨论】:

  • 看起来很有趣,如果你成功了,我很想知道你是怎么做到的。我会试着四处挖掘,看看能不能找到什么。
  • @bandaa25 是的,经过相当多的调试后,我似乎无法弄清楚。无论如何,可能有帮助的额外内容是,当我尝试将编辑文本更改为文本视图甚至图像视图之类的其他内容时,所有这些可聚焦、已启用、可聚焦的触摸模式为 false,它仍然可以工作。

标签: java android android-layout android-edittext


【解决方案1】:

我认为如果你 setOnTouchListener() 和 ovverride onTouch() 返回 true,它应该可以工作。

【讨论】:

  • 感谢您的回复。我已经更新了这个问题。我做对了吗?因为它仍然无法正常工作。
  • 它仍然没有收到任何触摸输入。
  • 这很奇怪,因为我使用了相同的方法,我看到调试器进入 {return true;} 语句.....你能告诉我你到底想用触摸事件实现什么.. .?
  • 我试图让用户根据手指的位置拖动和移动项目。在我的活动中,有一个布局可以处理我所有的这些触摸事件。
  • 显然,当我尝试使用其他不能处理所有这些重点内容的东西时,它会正常工作。
【解决方案2】:

您可以通过在布局中的任何视图上调用 ontouch 方法来移除

val eventDown = MotionEvent.obtain(0, 20, MotionEvent.ACTION_DOWN, 0f, 0f, 0)
frameLayView.onTouchEvent(eventDown)
val eventUp = MotionEvent.obtain(0, 20, MotionEvent.ACTION_UP, 0f, 0f, 0)
frameLayView.onTouchEvent(eventUp)

【讨论】:

    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    相关资源
    最近更新 更多