Articles of android softkeyboard

自定义Android键盘焦点问题

我目前正在开发一个自定义键盘应用程序,该应用程序将针对使用DPad作为其主要输入设备的设备进行优化。 我的问题是当光标在EditText字段中并按下(例如KEYCODE_DPAD_DOWN)时,键盘视图没有接收焦点和KeyEvents。 没有任何反应,或者有问题的EditText下方的元素会获得焦点。 以下是相关代码。 任何帮助将非常感激。 我已经尝试解析SoftKeyboard示例以及KeyboardView.java以获取提示但没有成功。 谢谢,布莱恩 MyKeyboard.java public class MyKeyboard extends InputMethodService { private static final String TAG = “MyKeyboard”; private MyKeyboardView mInputView = null; @Override public void onCreate() { super.onCreate(); } @Override public View onCreateInputView() { mInputView = (MyKeyboardView) getLayoutInflater().inflate(R.layout.input, null); // attempts to make this focusable mInputView.setClickable(true); mInputView.setFocusableInTouchMode(true); mInputView.setFocusable(true); mInputView.setEnabled(true); return mInputView; […]

Android Soft键盘浮动只有特定的布局

我有一个布局,代码如下 在上面的代码中,当键盘显示时,我希望layout2保持在bottom , layout1 go up with keyboard 。 如果我添加android:windowSoftInputMode=”adjustPan|adjustResize”两个布局都保持在底部。 请帮忙

如何在android自定义InputMethodService上使用回车键进行搜索?

我想用我的Android自定义键盘用enter键搜索,但它不起作用。 我已经映射了密钥,我只需要在搜索文本字段上触发“搜索操作”,就像在Google上搜索一样。 我尝试使用此代码来触发搜索操作,但它不起作用: ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); 这是我覆盖enter键事件的方法: public class Keyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener { @Override public void onStartInputView(EditorInfo info, boolean restarting) { super.onStartInputView(info, restarting); setInputView(onCreateInputView()); switch (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION) { case EditorInfo.IME_ACTION_SEARCH: Toast.makeText(this, “test”, Toast.LENGTH_SHORT).show(); //Action Search break; } } 我的xml布局是: 我的布局中没有任何EditText来设置android:imeOptions=”actionSearch” 。

如何为Android应用程序开发自定义软键盘?

我有一个数学相关的应用程序我已经制作,我真的想制作一个自定义的软键盘。 它将具有类似小键盘和内置的pi和平方根符号等特殊字符的属性。我希望它仅为该应用程序替换为默认键盘,并且仅打开我为此应用程序开发的键盘。 我的问题是我该怎么做? 我是否使用表格布局制作“键盘”,并在单击文本字段时打开一组按钮,还是使用键盘布局?

adjustPan和NestedScrollView的交互

在我的布局中,我在NestedScrollView有一个EditText 。 使用软键盘编辑EditText ,我希望NestedScrollView的内容能够向上滚动。 但是,相反,活动的整个内容都会滚动,包括不应移动的ImageView : 我想要什么(糟糕的Gimp-job): 以下是我的布局的简化版本仍然显示问题: 我已经尝试了活动上的NestedScrollView和windowSoftInputMode上的isScrollContainer各种组合,但没有任何组合给我我想要的东西:当popup软键盘时,我希望文本向上滚动,而不更改NestedScrollView ‘可见边距或后面的ImageView 。

方向更改后,showSoftInput不起作用

我有一个带有单个EditText的片段,需要软键盘不断打开。 旋转屏幕时键盘会隐藏。 我在OnActivityCreated中调用showSoftInput,它在旋转后执行,但它不显示键盘。 InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(edit, 0); 注意:我不想使用toggleSoftInput。 我试过了,但在某些情况下它最终会关闭键盘。 并且无法查询android以确定键盘是否已打开。

软键盘上的搜索图标

我有一个用于MenuItems的searchIcon的ActionLayout。 这个ActionLayout有一个AutoCompleteTextView,它有imeOption = “actionSearch” 。 但是,当我单击menuItems并显示ActionLayout时,popup软键盘,但它仍然有换行键而不是searchIcon。 活动代码: private AutoCompleteTextView mEtSearchbar; private MenuItem mSearchbar; @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.searchIcon: mEtSearchbar.clearFocus(); (new Handler()).postDelayed(new Runnable() { public void run() { mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0)); mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0)); } }, 100); return true; default: return super.onOptionsItemSelected(item); […]

Android – 全局布局监听器无法正常工作

我在这个问题中使用了Reuben Scratton的新答案代码。 当我将它粘贴到我的代码中时,我在addOnGlobalLayoutListener(new OnGlobalLayoutListener() , onGlobalLayout()和activityRootView (在heightDiff之后)下面得到红色波浪形。请帮我弄清楚是什么问题。 谢谢这是我在.java页面上的代码 public class Details extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_details); Intent intent = getIntent(); } final View activityRootView = findViewById(R.id.details); activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { int heightDiff = activityRootView.getRootView().getHeight() – activityRootView.getHeight(); if (heightDiff > 100) { // if more […]

软键盘隐藏工具栏

我在布局中使用了工具栏。 每当我打开活动并专注于编辑文本时,它都会隐藏工具栏。 请看下面的图片 下面是我的布局文件: 使用android:windowSoftInputMode=”adjustPan”也没有帮助。 键盘打开时如何避免隐藏我的工具栏。

在MvxFragment中关闭/隐藏Android软键盘

我用xamarin + mvvmcross创建android应用程序。 我的MvxFragment中有一个MvxAutoCompleteTextView。 在MvxAutoCompleteTextView中写入并单击其他控件后,我想隐藏虚拟键盘。 我用这个代码 public class MyFragment : MvxFragment { public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { base.OnCreateView(inflater, container, savedInstanceState); var view = this.BindingInflate(Resource.Layout.frMy, null); var autoComplete = view.FindViewById(Resource.Id.acMy); InputMethodManager inputManager = (InputMethodManager)inflater.Context.GetSystemService(Context.InputMethodService); inputManager.HideSoftInputFromWindow(autoComplete.WindowToken, HideSoftInputFlags.None); return view; } } 但这不行。 如何隐藏键盘?