Android 监听软键盘弹出
来源:互联网 发布:mysql和oracle语法区别 编辑:程序博客网 时间:2024/05/20 04:29
聊天界面在点击输入框时,软键盘弹出时对话列表要滑动到底部,所以需要监听键盘弹出的状态。
因为Android本身并没有给出相应的监听方法,所以主要采用的方式还是监听整体视图或布局的高度变化来达到监听键盘弹出的目的。
在manifest文件中设置当前Activity的android:windowSoftInputMode属性如下:
android:windowSoftInputMode="stateAlwaysHidden| adjustResize"
stateAlwaysHidden:用户选择activity时,软键盘总是显示的状态
adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间。(这样在键盘弹出时activity会调整布局的大小)
采用的方式是:给activity最外层的布局添加View. OnLayoutChangeListener
public class MainActivity extends Activity implements OnLayoutChangeListener{ //最外层的Layout视图 private RelativeLayout rlRootLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rlRootLayout = findViewById(R.id.rl_root_layout); } @Override protected void onResume() { super.onResume(); //添加layout大小发生改变监听器 rlRootLayout(this); } @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { //现在认为只要控件将Activity向上推的高度超过了150屏幕高,就认为软键盘弹起, //高度自己确定,也可以设定为屏幕高度的1/3或1/4等 if(oldBottom != 0 && bottom != 0 &&(oldBottom - bottom > 150)){ Toast.makeText(this, "键盘弹起...", Toast.LENGTH_SHORT).show(); }else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > 150)){ Toast.makeText(this, "键盘关闭...", Toast.LENGTH_SHORT).show(); } } }
阅读全文
0 0
- Android 监听软键盘弹出
- Android 监听软键盘弹出状态
- Android监听软键盘弹出与收起
- Android 软键盘弹出与关闭监听
- android软键盘弹出关闭监听
- Android 软键盘弹出/收起监听
- android 监听判断软键盘的弹出、隐藏状态
- 监听android软键盘弹出或者关闭的方法
- android 监听软键盘的弹出和收起
- android实现软键盘弹出/收起的监听
- android监听软键盘的弹出与隐藏
- Android监听软键盘的弹出与收回
- android 监听软键盘的弹出与隐藏
- android Edittext 监听软键盘弹出显示和消失隐藏
- android 软键盘监听
- Android软键盘监听
- android中监听软键盘的弹出与隐藏,并获取软键盘的高度
- Android 软键盘遮挡处理和软键盘弹出与收起的监听
- Java设计模式之创建型模式-原型模式(Prototype)
- ListView + CheckBox(或者是RadioGroup等控件)的混乱选中原理
- HDU 6170 Two strings (二维DP)
- springmvc集成shiro后,session、request姓什么?
- python2/3---sort方法与sorted函数的使用
- Android 监听软键盘弹出
- Xor Sum Gym
- Windows Practice_文件搜索器(四)_封装文件扫描器
- Gym
- Codeforces 845 C Two TVs
- java lambda表达式
- Windows Practice_闹钟(一)_简易记事本
- 门面模式
- k-近邻算法