我正在Android中创建一个简单的打字游戏.我从物理键盘输入输入没有问题,但现在我试图让软键盘在没有EditText的情况下出现.到目前为止,我尝试过以下方法:
1.具有visibility ="invisible"的EditText和此行:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(keyboard_edittext, InputMethodManager.SHOW_FORCED); // SHOW_IMPLICIT also failed
Run Code Online (Sandbox Code Playgroud)
2.这条线在onCreate():
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
Run Code Online (Sandbox Code Playgroud)
这个方法实际上在屏幕的底部10%显示了一个空的白色框而不是键盘,但是当我现在运行时它什么也没做.
3.另外两行onCreate():
InputMethodManager m = (InputMethodManager)this.getSystemService (Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);
Run Code Online (Sandbox Code Playgroud)
任何这些都没有运气.是否可以显示软键盘(然后使用onKeyUp/ onKeyDown)而不关注EditText?
现在,我能看到的唯一方法是创建我自己的软键盘实现(即从头开始构建).不期待那样!
每当我点击EditTextAndroid键盘弹出窗口出现,但我不想弹出键盘.
我想永久隐藏我当前应用程序的Android键盘弹出窗口.
我怎样才能做到这一点?
在我的Android应用程序中,我创建了AlertDialog一个WebView内部.该WebView负载要求用户登录网页.然而,当我点击在文本字段WebView,软键盘不会出现.我一般都知道这个问题(Android:Issue 7189); 但是,在我的情况下,建议的解决方案似乎不起作用,因为我使用外部网站,而不仅仅是一个简单的HTML表单.
如果用户点击网站的文本字段时出现键盘,那么完美的解决方案就是.但是,让键盘与它一起出现AlertDialog也会起作用.有任何想法吗?
我在android冰淇淋三明治模拟器中尝试了一个应用程序.我的应用程序正在进行一些文本框的活动.现在的问题是当我点击文本框时软键盘没有出现.我在谷歌地图应用程序中检查它也没有显示任何键盘是否有任何问题在Android 4.0软键盘???
我想制作特殊的软键盘,以便在我的Android应用程序中使用它,如下所示

我研究了软件键盘示例,并编辑了qwerty.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2008, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT …Run Code Online (Sandbox Code Playgroud) 我想添加类似于Vault应用程序中的数字键盘
我不知道如何调用它,我怎么能在谷歌找到?
Cyril Mottier在Android软键盘上自定义了发送/完成/返回键.在尝试代码时,我(以及评论中的其他几个)注意到在XML中设置带有新ID的imeActionId(例如@ + id/...)会向OnEditorActionListener返回0,当键被命中时用户,而不是唯一ID.但是,如果在ids.xml中设置ID并将imeActionId设置为该值(例如w/@id/...),则会导致布局膨胀错误.
我能成功将imeActionId设置为唯一ID的唯一方法是以Java编程方式设置它.那么XML属性imeActionId的正确用法是什么?
这是我的所有代码的要点:https://gist.github.com/gsysko/d46adbe27d409bde0299
谢谢你考虑这个问题.
我有一个SearchView.当用户点击键盘搜索按钮时,我需要进行服务器调用.听众的代码是什么样的?我想我必须使用OnClickListener.但是知道它是搜索按钮的内部代码,我不知道如何确定.
在我的Android应用程序中,对我来说使用adjustResize软键盘的行为至关重要.因此,用户可以向下滚动到其他UI元素,例如"继续"按钮.
我注意到adjustResize只有当我同时具有Manifest设置和android:fitsSystemWindows="true"布局根元素时才会有效.(如果我错了,请纠正我!)
但是android:fitsSystemWindows="true"工具栏不再位于状态栏后面.这很有道理,但不是我想要的.
当工具栏位于其后面时,状态栏具有与工具栏颜色相匹配的深色阴影.我所拥有的android:fitsSystemWindows="true"是一个无色的状态栏和一个比我想要的低24dp的工具栏.
为了adjustResize键盘行为,我会放弃匹配的彩色状态栏.但我的问题是,它们可能同时存在吗?我敢为美丽和无障碍做梦吗?
更有经验的人知道神奇的设置组合吗?或者,或许,作为一种解决方法,明确地为状态栏着色的方法?
供参考:
这些是具有RelativeLayout根元素的活动,其中一些是ListViews和EditTexts.
工具栏是 android.support.v7.widget.Toolbar
可能相关的风格项目:
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowContentOverlay">@null</item>
Run Code Online (Sandbox Code Playgroud)
PS - 我已经阅读了几十个关于软键盘行为的类似问题,但无法找到任何对工具栏的意外影响有用的东西.反之亦然,很多关于工具栏/状态栏行为的Style问题,但看似没什么关系.从来没有,抱歉,如果我错过了什么!
提前谢谢了!
编辑
我一直在玩删除android:fitsSystemWindows="true"和添加更多ScrollViews或尝试将所有内容放入相同的ScrollView.这什么都不做.
如果我删除android:fitsSystemWindows="true"然后UI的底部被"胶合"到屏幕的底部 - 它不会"调整大小"而是粘贴到软键盘的顶部,就像我期望它与adjustResizeManifest中的set一样.
android:fitsSystemWindows="true"在根视图中进行设置会使UI像我期望的那样调整大小 - 但它也会使工具栏不再在statusBar后面绘制.
所以我仍然是我开始的地方:(
添加布局XML代码示例:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- CoordinatorLayout because this view uses SnackBars -->
<!-- Relative Layout to lock "continue" button bar to …Run Code Online (Sandbox Code Playgroud) keyboard android android-layout android-softkeyboard android-styles
键盘下方还有更多字段.这发生在我更新支持库时.我知道它是Kotlin但它看起来几乎和java一样.我该如何解决这个问题?
这就是它的样子:
我的代码:
class ProjectsEditBottomSheetFragment(val privateID: String,
val publicID: String) : BottomSheetDialogFragment() {
private val mBottomSheetBehaviorCallback = object : BottomSheetBehavior.BottomSheetCallback() {
override fun onStateChanged(bottomSheet: View, newState: Int) {
if (newState == BottomSheetBehavior.STATE_HIDDEN) {
dismiss()
}
}
override fun onSlide(bottomSheet: View, slideOffset: Float) {
if (slideOffset < -0.15f) {
dismiss()
}
}
}
override fun setupDialog(dialog: Dialog, style: Int) {
super.setupDialog(dialog, style)
val view = View.inflate(context, R.layout.projects_edit_sheet, null)
dialog.setContentView(view)
dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
val params = (view.parent as View).layoutParams as CoordinatorLayout.LayoutParams
val behavior = …Run Code Online (Sandbox Code Playgroud) android android-softkeyboard android-fragments kotlin bottom-sheet