您的位置:首页 > 移动开发 > Android开发

Android启动软件盘的一些属性

2014-04-11 16:17 387 查看
启动activity时不自动弹出软键盘:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

今天我们来讲讲android:windoSoftInputMode的用法,许多同学会为软键盘的弹出、覆盖等所困扰,咱们先从这个属性说起,来谈谈这些问题。

首先从Api上来看看。它的属性值都有些,相关含义怎样,以便我们更好的使用这个属性。

使用场景:软键盘经常要隐藏或弹出-此时当前窗口要缩小,还要让键盘出现在窗口上面

使用方法:可以单独使用,也可以使用“|”来联合使用如<activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >

使用属性:

android:windowSoftInputMode="adjustPan"不让底部一道输入布局的上面

区别:退出和跳转

stateUnspecified:默认显示.

stateUnchanged:键盘状态与上个界面一致.

stateHidden:上个界面有键盘弹出,后退进入仍有键盘;上个界面无键盘弹出,无论后退或跳转此界面都无键盘弹出.

stateAlwaysHidden:不管上个界面有无键盘弹出,此界面一律事先不弹键盘.

stateVisible:上个界面无键盘弹出,后退则此界面无键盘弹出;上个界面有键盘弹出,无论后退或跳转此界面都有键盘弹出.

stateAlwaysVisible:不管上个界面有无键盘弹出,此界面一律弹键盘.

adjustResize:当前界面总是为键盘留足空间。如果输入框太靠下,则无法看见所输入文字.

adjustPan:当前界面不会为键盘留足空间。如果输入框太靠下,则窗体上移,可以看见所输入文字.

adjustUnspecified:界面根据需要,自己选择adjustResize或adjustPan

最后给大家讲两个属性

android:exported,false代表只可被当前应用或同一进程下应用所调用,true代表可以被其他应用所调用

这种解释只在当前Activity无intent-filter的情况下,若有则也可以被使用应用所使用

当然这并不全对,使用权限依然可以限制使用,详见Android自定义权限和使用权限

android:clearTaskOnLaunch 按下Home键,当前Activity此属性设为true则,再进入应用时只剩下此Activity,其他均被杀死;为false时,则为默认不执行任何操作。

android:stateNotNeeded 当前Activity设为true,则onSaveInstance()不会被执行,重启时传递的bundle对象消失。好处是当应用crash后,此Activity不会被回收。默认值为false。

android:process 默认Android应用会有一个,但如果需求也可以创建一个新的来覆盖它。值前有":"代表创建一个新的私有进程,让所有Activity跑在这个进程里;如果以小写字母开头,设置相关权限,其他应用也可以访问它,即共享进程。

android:enabled 是否可以被初始化,只有application的此属性和activity的此属性均为true时,表示可以;任何一个为false,表示不可以。

tips:判断手机是否是root机,为什么这么说?因为有的机器只是被赋予了删除应用的权限,其实还是属于用户群组,并不是真正的root。

进入cmd命令,输入adb shell 如果显示为"$"则是非完全root机;显示为"#"则是完全root机。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: