一个简单的自定义SearchView

图片描述

图片描述图片描述

描述:一个简单的自定义SearchView,弹出软键盘后,布局上移,但是只移动到EditText焦点, 没有将整个自定义view显示出来。

  1. 希望能够将view 的下面的描边也移动到软键盘上部。
  2. 现在如果 将自定义view的EditText 的gravity 属性写成bottom 能够完全显示出整个view,但是这样的话 有些难看,有什么好方法吗?求教。
  3. 拜谢!
阅读 3.9k
1 个回答

解决方案:

在AndroidManifest.xml文件中界面对应的<activity>里设置windowSoftInputMode属性

<activity  
         android:name=".PhoneContactActivity"  
         android:label="@string/title_activity_phone_contact"  
         android:windowSoftInputMode="adjustPan|stateHidden" >  
     </activity>  

android:windowSoftInputMode说明:

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

1.当有焦点产生时,软键盘是隐藏还是显示

2.是否减少活动主窗口大小以便腾出空间放软键盘

windowSoftInputMode的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。

例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >

在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值

各值的含义:

  1. stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

    stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

    stateHidden:用户选择activity时,软键盘总是被隐藏

    stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

    stateVisible:软键盘通常是可见的

    stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

    adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

    adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

    adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

例如:

AndroidManifest.xml文件中界面对应的<activity>里加入
android:windowSoftInputMode="adjustPan"   键盘就会覆盖屏幕
android:windowSoftInputMode="stateVisible|adjustResize"   屏幕整体上移
android:windowSoftInputMode="adjustPan|stateHidden" 软键盘弹出,界面布局不变,这是解决弹出软键盘,界面整体被压缩的方式

如果对android技术比较感兴趣,可以关注一下微信公众号:终端研发部,和我一块交流和学习。

终端研发部是一个以技术为主的学习交流技术号,谈的是技术,是产品,更是我们的人生。做东半球最会思考,最有味道的互联网开发者

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题