Articles of android softkeyboard

如何在searchView中收听键盘搜索按钮

我有一个SearchView。 当用户点击键盘搜索按钮时,我需要进行服务器调用。 听众的代码是什么样的? 我想我必须使用OnClickListener。 但是知道它是搜索按钮的内部代码,我不知道如何确定。

Android:如何在Emoji View中以编程方式打开软键盘

正如我所看到的,在android上显示默认表情符号的方法是在输入文本上使用以下内容。 android:inputType=”textMultiLine|textShortMessage” 当我搜索时,我无法通过Javafind一种方法。 我想要做的是,当软键盘打开时,让用户选项卡按钮在表情符号视图和普通键盘视图之间切换。 自定义表情符号键盘。 我已经实现了这一点,但是使用Emojis已经在设备上发布kik-kat会更好更轻。 谷歌确实在这些观点之间切换。 在Google Allo上,按下editText切换视图中的表情符号图标。

DialogFragment不会使用SOFT_INPUT_ADJUST_PAN进行平移

我有一个dialogfragment,里面有一些内容,包括EditText字段。 不幸的是,当我单击EditText字段时,软键盘会覆盖对话框的“关闭”按钮。 这是我通过使用解决的问题 getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 不幸的是,当我这样做时,对话框会缩小,其中的其他项目也会被覆盖。 我尝试使用SOFT_INPUT_ADJUST_PAN ,但在这种情况下只调整了包含的活动,对话碎片本身没有移动,并且仍然覆盖了关闭按钮。 我有什么方法可以制作对话片段吗? 我的相关dialogfragment代码如下所示: @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); mContactSupportView.findViewById(R.id.compose_message).clearFocus(); }

Android HTML5 – 软键盘重叠输入字段

我有点累了在Android上通过软键盘寻找重叠输入字段的解决方案。 我的问题非常类似于: 使用EditText字段进行软键盘重叠虽然在这种情况下它出现在HTML5中,而不是本机应用程序。 更确切地说:当输入字段被键盘完全覆盖时,整个页面都会滚动并且该字段变得可见 – 这没关系。 但如果此输入位于可见区域的边缘(键盘出现后),则我的软键盘会重叠,页面根本不会滚动。 键入第一个符号后,页面将滚动。 我的客户不喜欢这种行为……它确实出现在Galaxy Tab 10“ – Android 4.0.3,联想平板电脑 – Android 3.1上。 我尝试使用box-sizing:border-box;设置输入的高度box-sizing:border-box; , -webkit-appearance: textfield; , -webkit-user-select: text; , -webkit-writing-mode: horizontal-tb; , -webkit-rtl-ordering: logical; 还有更多,但没有任何效果。 你有什么想法吗? 我更喜欢CSS解决方案,在这种情况下,javascript页面滚动不是我的答案(客户要求)。 也许这只是一个Android Web浏览器错误,由于某些输入的父母的风格而没有解决方法或某些特定问题(我已经尝试删除所有position: absolute属性)? 欢迎所有建议。

使用adjustPan作为软输入模式时是否可以始终显示操作栏?

在我的应用程序中,我有一个带有页脚的ListView ,其中包含一个带有EditText的自定义视图。 在顶部坐着一个动作栏。 当前活动使用SOFT_INPUT_ADJUST_RESIZE ( adjustResize )作为软输入模式,并且在滚动时不关闭键盘。 为了显示更多列表,我想在滚动时删除键盘并获得更平滑的滚动行为,我想更改以便使用SOFT_INPUT_ADJUST_PAN ( adjustPan )。 但是,如果我更改为adjustPan ,则整个视图(包括操作栏)会被推高。 我希望列表视图被推送,但操作栏始终保持在顶部。 这可能吗? 如果没有,是否可以使用adjustResize并获得平滑的resizeanimation? 到目前为止,我尝试过: 请求Window.FEATURE_ACTION_BAR_OVERLAY ,但这并没有帮助,尽管文档听起来很有希望。 根据软键盘是否可见来移动操作栏容器,最终看起来像一个大规模不稳定的黑客,所以我报废了它。 到目前为止,我已经排除了adjustResize ,因为滚动时会出现绘图行为,同时最小化键盘并调整列表视图的大小。 有没有办法使平滑的animationresize?

WebView在loadUrl()期间隐藏了软键盘,这意味着键盘在调用javascript时无法保持打开状态

因为你在WebView上调用javascript的方式是通过loadUrl(“javascript:…”); 键盘不能保持打开状态。 loadUrl()方法调用loadUrlImpl() ,它调用一个名为clearHelpers()的方法,然后调用clearTextEntry() ,然后调用hideSoftKeyboard() ,然后当键盘消失时我们变得很孤独。 据我所知,所有这些都是私人的,不能被覆盖。 有人find了解决方法吗? 有没有办法强制键盘保持打开或直接调用javascript而不通过loadUrl()? 反正是否以某种方式覆盖WebView以防止(私有方法)clearTextEntry()被调用?

自定义键盘:处理inputType更改

我遇到了一个我无法弄清楚的问题。 我根据这个示例编写了一个简单的自定义IME键盘。 它基本上有两个自定义键盘,一个用于字母,一个用于数字。 他们使用不同的布局。 但是,当我添加两个EditText控件时,一个用于文本,一个用于数字,键盘不刷新到它所属的types。 我的意思是,如果我首先选择带有inputType=”text”的EditText ,则会出现QWERTY键盘布局。 但是当我选择inputType=”number”的第二个EditText ,QWERTY键盘再次出现。 但是,它应该为连接到代码中的数字加载不同的布局。 换句话说,这是测试活动布局: 现在,如果我选择“文本”字段,QWERTY键盘将显示如下: 但是,如果我选择“数字”字段,QWERTY键盘仍会显示错误。 预期的行为将是这个键盘出现。 这是CustomIME的代码,我尝试在视图上使用postInvalidate() ,在onInitializeInterface()期间预加载所有布局但没有任何效果。 它永远不会正确切换到数字的布局 public class CustomIME extends InputMethodService implements KeyboardView.OnKeyboardActionListener { public static final String CUSTOM_IME = “CUSTOM_IME”; private KeyboardView mKeyboardView; private Keyboard mKeyboardCurrent; private KeyboardType mKeyboardTypeCurrent = KeyboardType.QWERTY_LETTERS; private boolean mCAPs = false; enum KeyboardType { QWERTY_LETTERS, NUMBERS } @Override […]

可靠地隐藏软键盘

我有一个应用程序,需要在相当多的操作上关闭软键盘。 例如, 单击按钮时 , 绘制新布局时, 屏幕方向更改 , 控制器告知 UI等等。 我使用optionsMenuButton来使用ViewFlipper翻转视图,显然我希望键盘隐藏在翻转视图中(那里没有输入字段)。 到目前为止我已经尝试过这些并说明为什么这些不可靠: 这个没有用,因为我有很多editTexts和其他视图。 我需要一个更通用的,一个不需要视图作为参数,如果可能的话。 InputMethodManager imm = (InputMethodManager)getSystemService( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 这个对我来说根本不起作用: getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 这个可以工作,但在翻转视图时立即再次popup键盘。 InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 这个有时会起作用,但getCurrentFocus()大部分时间都返回null。 InputMethodManager inputManager = (InputMethodManager) Context.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 这个只有在显示键盘时才有效: getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK); 这个版本不像第一段代码那样使用EditText,而是使用根布局,它根据方向更改而每次调用oncreate时都会更改。 我有不同的横向/纵向和普通/大的布局XML。 所有根布局都具有ID root 。 这在第一次很好地工作,但在那之后,它不再起作用了。 InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(findViewById(R.id.root).getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); Bottomline:我尝试了许多软键盘隐藏方法,但它们似乎都不可靠。 […]

在AlertDialog中显示带有WebView的软键盘(Android)

在我的Android应用程序中,我创建了一个AlertDialog WebView的AlertDialog 。 WebView加载需要用户登录的网页。但是,当我单击WebView文本字段时,不会出现软键盘。 我一般都知道这个问题( Android:Issue 7189 ); 但是,在我的情况下,建议的解决方案似乎不起作用,因为我使用外部网站,而不仅仅是一个简单的HTML表单。 如果用户点击网站的文本字段时出现键盘,那么完美的解决方案就是。 但是,让键盘与AlertDialog一起显示也可以。 有任何想法吗?

为EditText隐藏android键盘

每当我点击EditText ,都会出现Android键盘popup窗口,但我不想popup键盘。 我想永久隐藏我当前应用程序的Android键盘popup窗口。 我怎样才能做到这一点?