在Android系统中,由于手机屏幕大小的限制,一般需要字符输入的时候,弹出的输入法面板往往会占据大半个屏幕,如果输入框正好在下方,那经常会出现被输入法面板遮挡的尴尬,给使用者带来不小的困扰,用户体验很不友好。

  查了一下Android SDK的说明,发现可以通过设置Activity的一个属性来解决这个问题,比如可以在AndroidManifest.xml中这样写:

java代码:

  1. < activity android:name=”.CategoryList”
  2. android:label=”@string/app_name”
  3. android:windowSoftInputMode=”stateVisible|adjustPan” >
  4. < /activity >

复制代码

这里面的android:windowSoftInputMode就是用来避免输入法面板遮挡问题的,具体的参数说明可参考SDK文档,但是,文档中说明,该属性是Android 1.5之后才加上的,也就是API Level 3以后的SDK才支持,那么如果在联想O1这样的机器上就不管用了,则该怎么办呢?好在我又找到了另外一种解决办法,就是ScrollView。我们可以在对应的layout XML的顶级元素上加一层ScrollView,这样,在这个ScrollView中,所有的文本框在输入法面板弹出的时候都会自动的向上滚动,示例代码如下:

java代码:

  1. < ScrollView xmlns:android=”http://schemas.android.com/apk/res/android “
  2. android:layout_width=”fill_parent”
  3. android:layout_height=”fill_parent” >
  4. < LinearLayout android:orientation=”vertical”
  5. android:layout_width=”fill_parent”
  6. android:layout_height=”fill_parent” >
  7. < EditText android:id=”@+id/content”
  8. android:layout_width=”fill_parent”
  9. android:layout_height=”wrap_content”
  10. android:lines=”4″
  11. android:scrollbars=”vertical”
  12. android:gravity=”fill_horizontal” / >
  13. < /LinearLayout >
  14. < /ScrollView >

Android 输入法遮挡问题的更多相关文章

  1. Android输入法遮挡了输入框,使用android:fitsSystemWindows="true"后界面顶部出现白条解决方案

    我的最外层是LinearLayout,自定义CustomLinearLayout继承LinearLayout,重写fitSystemWindows和onApplyWindowInsets两个方法: p ...

  2. 防止UI界面被输入法遮挡(画面随输入法自适应)

    应用过Android手机的朋友都知道,有时候在文本框中输入文字后,操作按钮被输入法遮挡了,不得不关闭输入法才可以继续操作. 比如下面这个画面: 画面布局: <?xmlversion=" ...

  3. Android输入法架构学习总结

    此文为本人学习输入法之后所做的一个总结报告.与大家分享. 安卓输入法框架(Input Method Framework)IMF 一.输入法框架简介 自Android平台1.5版本以后,Google开放 ...

  4. 写一个Android输入法02——候选窗、转换

    上一篇介绍了完成Android输入法的最小化步骤,它只能将按键对应的字符上屏.一般的东亚语言都有一个转换的过程,比如汉语输入拼音,需要由拼音转成汉字再上屏.本文将在前文基础上加入完成转换过程所必需的候 ...

  5. 写一个Android输入法01——最简步骤

    本文演示用Android Studio写一个最简单的输入法.界面和交互都很简陋,只为剔肉留骨,彰显写一个Android输入法的要点. 1.打开Android Studio创建项目,该项目和普通APP的 ...

  6. Android输入法扩展之远程输入法

    近年来,互联网电视開始火热,乐视TV,小米TV,近期爱奇艺也在大肆的招人做爱奇艺电视.当然还有更被关注的苹果电视.事实上,这个趋势非常正常,也非常合理,传统单纯的接收电视节目的电视已经太传统了.是该被 ...

  7. Android 输入法截取key优先于view

    为了验证编写了个例子 首先是输入法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class RemoteKeyboard exte ...

  8. Android 输入法键盘和activity页面遮挡问题解决

    本文主要介绍Android中如何解决输入法键盘和activity页面遮挡的问题. 总结: 不希望遮挡设置activity属性android:windowSoftInputMode="adju ...

  9. Android EditText在ScrollView中被输入法遮挡

    千言万语不如一张图来的实在,问题如下GIF图所示[输入框被输入法挡住了]: 为了不让底部的按钮随着输入法一起起来,我把windowSoftInputMode设置为adjustPan. <acti ...

随机推荐

  1. layui的table中使用switch

    {{# if(false){ }} <input type="checkbox" name="switch" lay-skin="switch& ...

  2. vue中$router和$route的区别

    $router是VueRouter的实例,在script标签中想要导航到不同的URL,使用$router.push方法. 返回上一个历史history用$router.to(-1) $route为当前 ...

  3. 【神经网络】Reducing the Dimensionality of Data with Neural Networks

    这篇paper来做什么的? 用神经网络来降维.之前降维用的方法是主成分分析法PCA,找到数据集中最大方差方向.(附:降维有助于分类.可视化.交流和高维信号的存储) 这篇paper提出了一种非线性的PC ...

  4. eclipse Maven 使用记录 ------ 建立 webapp项目

    maven 建立 webapp 项目 有2种方式 ,  1.在原先app上转换为webapp项目  2.建立maven项目的时候  filter 选择webapp 该选项把webapp文件目录建好,其 ...

  5. 使用一层神经网络训练mnist数据集

    import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...

  6. PD003-NET通用后台系统

    PD003-NET通用后台系统 开发语言.Net 成品成品 前端技术jquery 数据库sql server .net 通用后台框架   详细信息 基于EF+MVC+Bootstrap构建通用后台管理 ...

  7. Android 底部菜单固定到底部

    今天搞了很久的一个问题,导航菜单没有固定到底部,因为上面是ListView,可是没内容,于是就浮动上去了. 效果如下: 这里采用的是一个碎片,代码是: <LinearLayout xmlns:a ...

  8. The type name 'IComponentConnector' could not be found in the namespace 'System.Windows.Markup'

    场景:Visual Studio写WPF项目时,想要生成XML文件,默认的WPF项目没有引入System.XML这个dll.在[解决方案资源管理器——引用]右键添加了System.XML引用后,运行项 ...

  9. 【MarkdownPad】不能输入表格Table

    使用MarkdownPad时,需要制作一个表格.搜到参照这篇文章,发现还是无法显示表格,测试效果是如下这样的: Markdown文本: 显示效果: 谷歌一下,原来是MarkdownPad默认的处理器不 ...

  10. DLL接口的实现(虚函数)

    DLL接口的实现(虚函数) 我们在c++编程过程中往往要用到各种不同形式的程序库,这些库的发布方式有动态库和静态库.对于静态类库,设计良好的静态类库能实现功能上的隔离,无法避免类库实现必须重新编译.链 ...