这个"Done"按钮从何而来?

  • 本文关键字:Done 按钮 这个 android
  • 更新时间 :
  • 英文 :


Android 2.35-我在屏幕上有一个多行EditText,它还有一个OK和Cancel按钮。当用户完成输入文本时,他点击OK按钮,该按钮处理输入的文本。

当在纵向模式下点击编辑文本时,软键盘会出现在"确定"one_answers"取消"按钮下方,这样就不会遮挡它们。但在横向模式下,软键盘覆盖了"确定"one_answers"取消"按钮,一个神秘的"完成"按钮出现在EditText的右侧——这是一个灰色背景上的普通按钮。敲击它会使键盘失效。

我的布局中没有定义这样的按钮!它是从哪里来的?是什么决定了它的外观、状态和属性?它的事件在哪里处理?它叫什么,这样我就能读到更多关于它的信息?

我试着添加

    android:imeOptions="actionDone"

给软键盘一个完成按钮,但没有效果。我宁愿在键盘上有一个看起来像键盘其他部分的"完成"按钮,而不是这个看起来不像或不适合屏幕上其他任何东西的奇怪"完成"按键。提前感谢提供任何信息。

在横向模式下,大多数IMEs进入全屏模式,因为显示器通常太小,无法同时显示UI的有意义的部分键盘。您可以通过设置标志EditorInfo.IME_FLAG_NO_EXTRACT_UIEditorInfo.IME_FLAG_NO_FULLSCREEN来要求编辑器不要这样做。这可能工作或不工作。但这仍然取决于你在尽可能多的设备上进行测试,看看这是否仍然是一个好的用户体验——通常不是。

试试这个

edittext.setOnEditorActionListener(new DoneOnEditorActionListener());

并使用此类

class DoneOnEditorActionListener implements OnEditorActionListener {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                InputMethodManager imm = (InputMethodManager) v.getContext()
                        .getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                return true;
            }
            return false;
        }
    }

最新更新