android技术--------如何解决弹出键盘只影响当前fragment输入的窗口

本文探讨了在Android应用中,如何处理Fragment在弹出键盘时只影响当前输入窗口的问题。作者通过尝试使用不同的键盘显示模式,如adjustPan和adjustResize,发现无法达到理想效果。最终,通过创建DialogFragment并自定义样式,成功实现了类似Android Pad QQHD聊天界面的效果,解决了键盘弹出导致界面布局异常的困扰。
摘要由CSDN通过智能技术生成

题目比较长,也可能有很多人不明所以这东西有啥可写的,简单来说就是实现近似于Android Pad 上QQHD聊天的界面效果,搞了很长的事件,今天终于搞定。

android3.0新加了组件Fragment称之为碎片,对这个一无所知的请自觉补习。今天的阐述将基于此组件。

fragment可以放入activity中,并随activity的生命周期变化而变化,但当相应键盘事件的时候,就比较让人挠头了,本来只希望弹出的软键盘可以将上层的Fragment进行挤压,而不影响到activity的样式,当时碉堡了,fragment与activity用得同一个Window(用于管理UI,这块我也不太熟悉,还请有研究的高手来指点一二)来响应键盘事件,也就是说你可以将activity的键盘显示事件设为adjustPan(个人理解为键盘覆盖)时,fragment也会响应此事件,当输入框位置在键盘弹出位置之上的时候,一切还是那么的河蟹,但是当输入框的位置在弹出的键盘区域之内时,整个界面还是会被整体上移,使fragment的一部分移出屏幕之外;之后尝试给fragment加键盘的响应事件adjustResize,fragment终于可以不被挤出了,以为完了么,OH NO,activity又被挤压了。噩梦啊

忽然灵光一闪,遗忘角落的DIALOG向我发出了光辉啊,有戏啊,既然键盘是一个Dialog形式(至于为什么这么说欢迎脑补,或者学习一下新的控件KeyBoardView)的控件,为什么不以彼之道还施彼身呢?

1.实例化一个Dialog类,在实例化的时候发现有两个构造函数,一个传参数Context,一个传参数Context,int(R.style.**),先试试第一个吧,只传个Context,果然偷懒不是好事,键盘依旧直挺挺的将dialog挤出了屏幕,第一次尝试失败

2.那么试一下第二个构造函数,先做准备工作࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值