Canvas中的Edittext

时间:2017-06-09 10:58:53

标签: android canvas android-edittext android-softkeyboard

我正在尝试捕获放置在Canvas中的EditText的输入。 EditText必须在Canvas中,因为所有其他元素都在Canvas中。我能够在一个布局中包装EditText并在Canvas上绘制(因为你无法在画布上单独绘制EditText / TextView)但是无法将焦点放在它上面并显示键盘。任何解决方案或解决方法都非常感谢。

1 个答案:

答案 0 :(得分:0)

我不知道你是怎么做到的,但对我来说,如果你已经实现了在Canvas上绘制EditText(原文!),这意味着你基本上提取了EditText本身的Canvas并在你的画面上绘制信息自己的画布。这意味着您的EditText不再作为EditText进行管理。这就是你无法对焦或显示键盘的原因。

要解决您的问题,您有两种可能:

  1. 将自定义组件和EditText放在RelativeLayout或任何类型的ViewGroup中,这样您的EditText仍然是EditText,您可以访问其属性(如请求焦点或显示键盘)但在这种情况下EditText不会在自定义组件的Canvas上绘制。
  2. 您必须重新实现自定义组件中EditText的行为。这意味着当用户单击EditText所在的区域时显示键盘,依此类推。但这不是一个好的选择。
  3. 但为什么一切都需要在画布中?可能你需要重新考虑你的实现,因为似乎有些错误。