关于查找显示/隐藏软键盘事件的文章很多.
我发现自己处于一种需要根据软键状态在一个片段中更改图标的情况.
我尝试实现onMeasure,但无法在片段中覆盖它.
是否有(相对)轻松的方法来获取片段中的干净显示/隐藏软键盘事件,还是我应该放弃?
解决方法:
可悲但真实的-android在软件键盘显示事件上没有本机.
解决键盘隐藏问题的一种方法是检查输入的符号并按下后退按钮(例如textEdit甚至会收到后退按钮)-但这不是足够灵活的解决方案.
另一个可能的解决方案是:
在活动中覆盖onMeasure,然后通知观察者(模式观察者)-例如片段. Fragment应该订阅和取消订阅onPause onResume事件.活动代码类似:
private class DialogActivityLayout extends linearLayout { public DialogActivityLayout(Context context, AttributeSet attributeSet) { super(context, attributeSet); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.activity_dialog, this); } @OverrIDe protected voID onMeasure(int wIDthMeasureSpec, int heightmeasureSpec) { final int proposedHeight = MeasureSpec.getSize(heightmeasureSpec); final int actualHeight = getHeight(); /* Layout loaded */ if (actualHeight == 0 || proposedHeight == actualHeight) { super.onMeasure(wIDthMeasureSpec, heightmeasureSpec); return; } if (proposedHeight > actualHeight) { DialogActivity.this.onKeyboardHIDe(); } else { DialogActivity.this.onKeyboardShow(); } super.onMeasure(wIDthMeasureSpec, heightmeasureSpec); } }
我不确定,但据我所知,它仅适用于linearLayout,当然,活动应设置adjustResize标志(以编程方式或在宣言中)
另一个(我更好的方法)是使用globalTree观察器
SoftKeyboard open and close listener in an activity in Android?
总结以上是内存溢出为你收集整理的android-在片段中显示/隐藏软键盘事件全部内容,希望文章能够帮你解决android-在片段中显示/隐藏软键盘事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)