一.写此文章的起因 本人在做类似于微信.易信等这样的聊天软件时,遇到了一个问题.聊天界面最下面一般类似于如图1这样(这里只是显示了最下面部分,可以参考微信等),有输入文字的EditText和表情按钮等. 1.点击表情会在这下面显示表情选择,如图2,如果之前点击输入框弹出了软键盘,那么还需要隐藏软键盘: 2.点击输入框,弹出软键盘,如果之前显示了表情选择,则还需要隐藏表情选择. 这里我们第一想到的就是需要监听软键盘的显示和隐藏,我也是这样想的,到网上一查,都是重写根布局,比如LinearLayou…
在输入框中加入android:imeOptions="actionSearch",调用软键盘时,回车键就会显示搜索二字. 我想在点击搜索时,跳转到下一个页面,但是调用setOnKeyListener,每次都执行两次.最后上网看到别人的文章,解决了问题,解决方法是调用setOnEditorActionListener而不是用setOnKeyListener来监听点击搜索按钮. 代码如下(在fragment中写的,在activity中写的时候去掉context相关的东西就行了): sear…
如图所示,有时候为了布局美观,在搜索时没有搜索按钮,而是调用软件盘上的按钮.调用的实现只需要在XML在输入框中加入android:imeOptions="actionSearch",另外,还要设置android:singleLine="true",保证点击不会换行,最后调用软键盘时,回车键就会显示搜索二字. 然后调用 OnEditorActionListener,不是OnKeyListener searchPatient.setOnEditorActionListe…
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录自定义EditText控件实现监听软键盘隐藏事件的功能.基本上和参考资料相同. 效果图    代码分析 自定义EditText子类,然后重写onKeyPreIme方法 @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() =…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录软键盘相关问题设置 OnLayoutChangeListener - 推荐设置 OnGlobalLayoutListener - 推荐重写 onSizeChanged - 麻烦,不推荐 软键盘相关问题 我们在开发中经常会遇到软键盘遮挡住了输入框,而直接把输入框往上顶adjustR…
把开发过程中重要的一些内容片段做个珍藏,如下资料是关于Android软键盘的隐藏显示.事件监听的内容,应该是对小伙伴们有所用途. public class ResizeLayout extends LinearLayout{ private static int count = 0; public ResizeLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected voi…
转自:http://blog.csdn.net/lilu_leo/article/details/6587578 看了很多这类型的文章,这篇文章最有价值,解决了我的烦恼,必须转. Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入.    那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少?我们能否在应用程序中进行自定义的控制?这些是本文要讨论的重点. 一.软键盘显示的原理    软件盘的本质是什么?软键盘其实…
软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); mRe…
在工作过程中,常常会遇见需要根据自己的需求,控制文本框的键盘显示和隐藏. 通过查阅Android文档,介绍可以通过在清单文件中<activity>元素中添加android:windowSoftInputMode属性来处理. 这个属性主要影响两件事情: 1.软键盘的状态—当Activity显示给用户的时候,它是显示还是隐藏. 2.主活动窗口的调整—它是否调整主窗体大小来给软键盘腾出空间,或者在部分窗口被软键盘覆盖的时候,它的内容能否上拉让当前的焦点可见. 该属性设置必须由如下表格中的一个,或者一…
通过网上搜索关于软键盘的隐藏弹出的监听,有几种方式,其中最有效的方式是在View的Onlayout()里面做文章 具体代码: 将布局视图自定义,重写onlayout()方法,然后在主Activity里面调用接口就可以了 /** * 为了监听软键盘的弹出隐藏 * */ public class ResizeLayout extends LinearLayout { private InputListener mListener; public interface InputListener { v…
弹出软键盘 前提:必须要有一个可以编辑的控件(EditText),并且当前已经获取焦点 /** * 弹出软键盘 */ public void openKeyboard(View view) { // 获取焦点 editText2.setFocusable(true); editText2.setFocusableInTouchMode(true); editText2.requestFocus(); // 弹出软键盘 InputMethodManager imm = (InputMethodMa…
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 stateHidden:用户选择activity时,软键盘总是被隐藏 stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 stateVisible:软键盘通常是可见的 stateAlwaysVisible:用户选择activ…
之前总想搞一下这个模块,可是由于忙碌总是推迟,现在就把这块好好的弥补过来,下面是我实现的思路.本人才疏学浅,还望大家不要见笑. 首先我们还是先看写示例:            上面应用应该不用我过多介绍,下面我简单介绍下我如何实现的吧,想必这是大家最关心,前提说一点,思路上如果有不足的地方,或者有好的建议什么的,麻烦您多多指出,大家一起进步嘛. 首先我们从布局开始:      微博:红色方框我们称为底部导航栏,而蓝色部分是我们的表情窗口(包含表情分页点). 我的布局:或许大家看不到表情的布局,这…
EditText 软键盘 package brother.eighteen.demoedittext; import android.content.Context; import android.text.InputType; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.inputmethod.InputMethodManager; import android.w…
android一把自带的软键盘弹出方式是会将布局顶上去,造成UI乱套的情况. 解决办法:方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);方法二:在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode=&q…
最近偶尔发现一个比较奇怪的现象,netstat 查看监听的服务端口时,却只显示了 tcp6 的监控, 但是服务明明是可以通过 tcp4 的 ipv4 地址访问的,那为什么没有显示 tcp4 的监听呢? 以 sshd 监听的 22 端口为例: # netstat -tlnp | grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1444/sshd tcp6 0 0 :::22 :::* LISTEN 1444/sshd 可以看到,netstat 显示表示 s…
Activity 启动时软键盘默认状态 在清单文件(manifest .xml)中可以通过在 Activity 标签中增加属性控制软键盘的默认状态: android:windowSoftInputMode="stateHidden" 上面的 stateHidden 就是表示隐藏,同理 stateVisible 就是代表可见. 使用 EditView 的方法来控制软键盘的显示 EditView 提供了一个方法来控制当焦点在该 EditView 上时,软键盘是否显示.(API 21 以上)…
2017-08-14 21:44:23 有很多中情况,分别展示. 1.Activity不做任何设置,布局使用LinearLayout 会自动滚动EditText之上的所有View,代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:la…
工具类,拿走就能用: import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graphics.Rect; import android.os.Build; import android.util.DisplayMetrics; import android.view.inputmethod.InputMethodManager…
Edittext java 代码控制获取焦点 EditText mEditText = (EditText) findViewById(R.id.et); mEditText.setFocusable(true); mEditText.setFocusableInTouchMode(true); 显示光标 mEditText.requestFocus();//获取焦点 光标出现 监听EditText焦点变化 当获取焦点后 hasFocus 为true mEditText.setOnFocusCh…
最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏. 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT…
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 如果你试图在软键盘的显示或隐藏时去改变的UI界面结构,仅有的方法是你可以依赖使用键盘的通知消息. UITextField代理消息只会在文本区域开始被编辑时发出,而不管屏幕上是否有软件盘显示. 记住,用户可以使用蓝牙键盘连接iOS设备,并且使用它去编辑文本区域或任何其他你App中可输入控件的内容. 在使用蓝牙键盘的情况下,并没有软键盘会显示在屏幕上--如果你在文…
在EditText控件接近底部的情况下 软键盘弹出后会把获得焦点的EditText控件遮挡 无法看到输入信息  防止这种情况发生 就须要设置AndroidManifest.xml的属性 前面的xml信息省略 在activity中 添加android:windowSoftInputMode="adjustPan"         <activity            ........................................................…
edittext 有个onCreateInputConnection 的方法,通过它可以自定义一个输入法连接器,那里连接器里面有个方法(finishComposingText)能监听输入完成的动作. public class MyEditText extends EditText{ public MyEditText(Context context) { super(context); } private OnFinishComposingListener mFinishComposingLis…
Android系统对EditText这个控件有监听功能,如果某个Activity中含有该控件,就会自动弹出软键盘让你输入,这个看似人性化的方案有 时候并不被用户喜欢的,所以在有些情况下要禁用该功能.这几天做的应用也有这个问题,所以就查了,网上大部分都是如下方法: <activity android:name=".MainActivity" android:screenOrientation="landscape" <span style="co…
在android的实践开发中,为了界面的美观,往往那些搜索框并没有带搜索按钮,而是调用了软键盘的搜索按钮,完成这次时间 1 2 好吧!直接上代码! <EditText android:id="@+id/my_chat_seach" android:layout_width="fill_parent" android:layout_height="23dp" android:layout_centerVertical="true&q…
android:id="@+id/editSms" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/saveSms" android:inputType="textMultiLine" android:gravity="left|top" andro…
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation…
本文为原创文章,转载请标明出处 今天做了一个如下图所示的页面. iOS 端毫无 bug,Android 端却出现了问题.当软键盘弹出后,Android 端的 tabs 移到了软键盘的上面,再仔细一看,整个界面都被压扁了,输入框也不知道去哪儿了. 于是去翻 Ionic Native - Keyboard 文档,并未发现有能解决该问题的方法.于是又想到是不是 android:windowSoftInputMode 属性出了问题,打开 AndroidManifest.xml,发现 Ionic 3 将…
1.滚动条的变相隐藏 思路: 1.  把body的横向,纵向的超出部分隐藏,宽设置100%:高设置100%.就没有body的滚动条了, 2.  然后把最外层的div的宽设置的比body的宽宽一点,把div的滚动条挤出去,并把div的横向超出部分隐藏掉,就可以实现没有滚动条也可以滚动的效果 <html> <style> *{ //边距清零 margin: 0; padding: 0; } //隐藏body的滚动条(会没有滚动效果) .scroll{ overflow-x: hidde…