首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

怎么解决软键盘弹出引起的各种不适

2012-08-25 
如何解决软键盘弹出引起的各种不适?? ? ? ? ? ? ? ?category android:nameandroid.intent.category.LAU

如何解决软键盘弹出引起的各种不适
?? ? ? ? ? ? ? ?<category android:name="android.intent.category.LAUNCHER" />
?? ? ? ? ? ?</intent-filter>
?? ? ? ?</activity>

?

四个参数意思如下:

SOFT_INPUT_ADJUST_NOTHING: ? ? ? ? 不调整(输入法完全直接覆盖住,未开放此参数)

SOFT_INPUT_ADJUST_PAN: ? ? ? ? ? ? ? ? 把整个Layout顶上去露出获得焦点的EditText,不压缩多余空间,见图1

SOFT_INPUT_ADJUST_RESIZE: ? ? ? ? ? ?整个Layout重新编排,重新分配多余空间,见图2

SOFT_INPUT_ADJUST_UNSPECIFIED: ?系统自己根据内容自行选择上两种方式的一种执行(默认配置)

?

这里的多余空间指的是控件们通过weight分配机制得到的额外空间。

怎么解决软键盘弹出引起的各种不适

?

图1

?

怎么解决软键盘弹出引起的各种不适

?

图2

?

怎么解决软键盘弹出引起的各种不适

?

图3

?

代码实现方式为:

???

?

图4

?

怎么解决软键盘弹出引起的各种不适

?

图5

?

?

其对应的Activity是AccountSetupBasics.java,对应的xml文件为account_setup_basics.xml。

来学习下它的xml写法:

?

?

?

?

1 ?它完全把ScrollView作为了一个根Layout,而不是网上好多文章写的在一个Linearlayout里面嵌入一个ScrollView(貌似这种是行不通的)。

然后把我们原来的根Layout搬入ScrollView(ScrollView只能有一个子控件),我查了下androidmanifist.xml和代码,未做任何以上2种方法的配置。

2 ?它定义了2个0dip的View帮助分配空间(设置其weight吃掉剩余空间,保证输入框处于界面中心位置),可以猜测出这里系统调用的是SOFT_INPUT_ADJUST_RESIZE参数,当所有有实际内容的控件空间总和超出特定范围时,ScrollView开始发挥作用。

?

如此,完美的解决我们遇到的问题。

另外,网上有人说想用SOFT_INPUT_ADJUST_RESIZE ,但又不希望背景图片被压缩,只要按如上方法把Linearlayout的背景图片设置好即可。

热点排行