导航:首页 > 操作系统 > 安卓连接键盘如何不弹出输入框

安卓连接键盘如何不弹出输入框

发布时间:2023-06-11 14:38:01

Ⅰ 安卓手机搜狗输入法怎么关闭桌面悬浮键盘

1、点击进入搜狗输入法APP。

android 软键盘的弹出及关闭

一、弹出:
方法1(推荐,此种方式可以自动弹出,无需延迟):

方法2(此种方式需要延迟一段时间,等UI加载完毕之后方能生效。但这个加载时间因不同手机而无法统一。你的手机好点,可能100毫秒就加载完毕,我的手机差点,可能需要1000毫秒才能加载完成。因此无法保证一定能自动弹出软键盘):

方法3(推荐。原理同上,只是不需要自己写死延迟时间。因为不同手机UI加载完毕所需时间可能不一样,这种方法比较保险,总是在UI加载完毕之后弹出,灵活性较好。而方法2延迟时间是写死的700毫秒,有可能在一些性能比较差的手机,700毫秒内UI还无法加载完毕,因此无法自动弹出软键盘。也有可能因为手机性能太好,100毫秒就加载完UI,而后面的600毫秒就算白等了,灵活性、可靠性及用户体验都很差):

二、关闭(如果是在Dialog中弹出的,则一定要在Dialog关闭前关闭软键盘;如果是在Activity中弹出的,则一定要在finish之前关闭软键盘):
方法1:

方法2(推荐):

Ⅲ android4.4 framework层怎样阻止弹出软键盘(输入法)

我建议你先下载一个任意的第三方输入法 然后按照步骤安装 屏蔽原机自带输入法 然后删除第三方输入法 这时候 你再打开要输入的一个界面 光标点击空白处 你会发现没有任何软键盘弹出 希望对你有帮助

Ⅳ 如何禁止android软键盘自动弹出

用的是android自带的输入框组件的话,是会自动弹出软键盘的. 如果是其他的地方需要弹出软键盘可以先在想要弹出的地方先获取组件焦点,然后调用键盘就ok了.

Ⅳ Android4.0 EidtText不弹出输入法

看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的时候默认弹出输入法,可以这样设置 这个属相:android:windowSoftInputMode=stateVisible,这样就会默认弹起输入法,当然还有别的办法。


java"><activityandroid:name=".ui.login"
android:configChanges="orientation|keyboardHidden|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateVisible|adjustPan">
</activity>

Android EditText 不弹出输入法总结

方法一:

在AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden

例如:

<activityandroid:name=".Main"
android:label="@string/app_name"
android:windowSoftInputMode="adjustUnspecified|stateHidden"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

方法二:

让EditText失去焦点,使用EditText的clearFocus方法

例如:

EditTextedit=(EditText)findViewById(R.id.edit);
edit.clearFocus();

方法三:

强制隐藏Android输入法窗口

例如:

EditTextedit=(EditText)findViewById(R.id.edit);
InputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

2.EditText始终不弹出软件键盘

例:

EditTextedit=(EditText)findViewById(R.id.edit);
edit.setInputType(InputType.TYPE_NULL);

研究了下android中焦点Focus和弹出输入法的问题。在网上看了些例子都不够全面,在这里全面总结下。

一:EditText为什么会默认弹出输入法?

同样的代码,碰到有EditText控件的界面时有的机子会弹出输入法,有的机子不会弹出。不好意思,这问题我也一头雾水,谁知道可以告诉我,否则 我就把这个问题留下来,以后研究android 源码时再搞个清楚。但是...我有解决方案。

二:默认弹出和默认关闭输入法的解决方案。

1.默认关闭,不至于进入Activity就打开输入法,影响界面美观。

①在布局文件中,在EditText前面放置一个看不到的LinearLayout,让他率先获取焦点:

<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>

②方法二:先看一个属性android:inputType:指定输入法的类型,int类型,可以用|选择多个。取值可以参 考:android.text.InputType类。取值包括:text,textUri,

phone,number,等.

Android SDK中有这么一句话“If the given content type is TYPE_NULL then a soft keyboard will not be displayed for this text view”,

先将EditText的InputType改变为TYPE_NULL,输入法就不会弹出.然后再设置监听,再重新设置它的InputType.


editText.setOnTouchListener(newOnTouchListener(){
publicbooleanonTouch(Viewv,MotionEventevent){
//TODOAuto-generatedmethodstub
intinType=editText.getInputType();//backuptheinputtype
editText.setInputType(InputType.TYPE_NULL);//disablesoftinput
editText.onTouchEvent(event);//callnativehandler
editText.setInputType(inType);//restoreinputtype
returntrue;
}
});

2.默认弹出。有时候按照需求可能要求默认弹出输入法。方案如下:


EditTexttitleInput=(EditText)findViewById(R.id.create_edit_title);
titleInput.setFocusable(true);
titleInput.requestFocus();
onFocusChange(titleInput.isFocused());
privatevoidonFocusChange(booleanhasFocus)
{
finalbooleanisFocus=hasFocus;
(newHandler()).postDelayed(newRunnable(){
publicvoidrun(){
InputMethodManagerimm=(InputMethodManager)
titleInput.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(isFocus)
{
imm.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
}
else
{
imm.hideSoftInputFromWindow(titleInput.getWindowToken(),0);
}
}
},100);
}

我觉得因为在Android的主线程中对UI的操作无效,所以必须在Handler中实现弹出输入法的操作。

三:关于焦点和输入法的个人理解

获取焦点是获取焦点,弹输入法是弹输入法。获取焦点后并不一定会弹出输入法,在网上搜了一圈,主流回答是“还有就是已开启界面就是focus的 text的话有可能也是不行的,UI渲染是需要时间的”......

由于对源码不懂,我对这一点也没有个全面的认识。只能将焦点和输入法分成两块来处理。焦点的打开和关闭特别简单。

焦点的获取:

titleInput.setFocusable(true);
titleInput.requestFocus();

焦点的取消:

titleInput.setFocusable(false);

四:关于经常调用的处理软键盘的函数如下:

1、打开输入法窗口:

=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

//接受软键盘输入的编辑文本或其它视图

imm.showSoftInput(submitBt,InputMethodManager.SHOW_FORCED);

2、关闭出入法窗口


=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(OpeListActivity.this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);

//接受软键盘输入的编辑文本或其它视图

inputMethodManagerwww.2cto.com
.showSoftInput(submitBt,InputMethodManager.SHOW_FORCED);

3、如果输入法打开则关闭,如果没打开则打开

InputMethodManagerm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
m.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);

4、获取输入法打开的状态

InputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
booleanisOpen=imm.isActive();

isOpen若返回true,则表示输入法打开

阅读全文

与安卓连接键盘如何不弹出输入框相关的资料

热点内容
c传递指针到python 浏览:160
手动添加引导的命令 浏览:52
740服务器小蓝条是做什么的 浏览:520
linux文件操作命令 浏览:125
安卓手机图片文件夹加锁 浏览:778
steam提示音在哪个文件夹 浏览:337
项目开发全程实录pdf 浏览:530
单片机reset 浏览:595
pdf怎么是英文 浏览:969
旗云2压缩机保险 浏览:374
做程序员压力大吗表情包 浏览:312
pdf下拉 浏览:371
php去掉小数后面的0 浏览:954
阿里备案买什么服务器 浏览:261
网络驱动下载到哪个文件夹 浏览:481
达内程序员培训西安 浏览:505
人保送车主惠app上怎么年检 浏览:604
android手机开机密码 浏览:480
linux查看某个进程命令 浏览:529
闲置的腾讯云服务器 浏览:439