解决 android 输入法弹出输入框被遮挡的问题
解决 android 输入法弹出输入框被遮挡的问题
由于本人懒,也从不写博客,之所以写是因为这次开发 ’又遇到‘ 输入法这个问题了,好久以前有遇到过,突然发现还是很有必要把他分享出来,言归正传,下面就把解决的几种方法贴上。
1,首先看效果图:
2,实现效果图 (输入框没被遮住):
解决方法一:
在 AndroidManifest.xml 文件中的activity里加入 android:windowSoftInputMode=“stateVisible|adjustResize”
解决方法二:
在 Activity 的 onCreate 里加入 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
public class TestActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}
解决方法三:
把你的 Layout 外面再加一层 ScrollView , 这样软键盘和输入框就可以一起滚动
解决方法四:
1,Activity 代码
public class TestActivity extends FragmentActivity {
// 最外层需要调整的Layout
private RelativeLayout rootView;
// 滚动的Layout
private LinearLayout scrollToInput;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_test); rootView = (RelativeLayout) findViewById(R.id.rootView);scrollToInput = (LinearLayout) findViewById(R.id.scrollToInput);rootView.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect = new Rect(); //取得 rootView 可视区域 rootView.getWindowVisibleDisplayFrame(rect); //取得 rootView 不可视区域高度 (被其他View遮挡的区域高度) int rootInvisibleHeight = rootView.getRootView().getHeight() - rect.bottom; //要是不可视区域高度大于100,则输入键盘就显示 if (rootInvisibleHeight > 100) { int[] location = new int[2]; //取得 scrollToInput 的坐标 scrollToInput.getLocationInWindow(location); //计算滚动高度(rootView),这样 (scrollToInput)在可视区域 int srollHeight = (location[1] + scrollToInput.getHeight()) - rect.bottom; rootView.scrollTo(0, srollHeight); } else { //隐藏软键盘 rootView.scrollTo(0, 0); } }});
}
}
2,activity_test.xml
<LinearLayoutandroid:id="@+id/scrollToInput"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:background="#B2AFAF"android:orientation="horizontal" ><EditTextandroid:layout_width="match_parent"android:layout_height="40dp"android:layout_marginTop="10dp"android:layout_marginBottom="10dp"android:background="@drawable/et_live_bg"android:gravity="left|center"android:hint="听说在这里评论的人超帅..."android:paddingLeft="12dp"android:paddingRight="12dp"android:textColor="#000000"android:textSize="14sp" />
</LinearLayout>
解决 android 输入法弹出输入框被遮挡的问题相关推荐
- Android输入法弹出时覆盖输入框问题
本文来自网易云社区 作者:孙有军 当一个activity中含有输入框时,我们点击输入框,会弹出输入法界面,整个界面的变化效果与manifest中对应设置的android:windowSoftInput ...
- Android输入法弹出时把布局顶上去和登录按钮顶上去的解决方法
背景:在写登录界面时,老板就觉得在输入密码的时候谈出来的输入法软键盘把登录按钮遮挡住了(入下图所示,不爽),连输入框都被挡了一半,于是不满意了,要叫我改,于是我看QQ的登录效果,我就去研究了一下,弹出 ...
- 2022-09-06 Android输入法顶起输入框,遮挡RecyclerView
背景 IM项目中的会话界面,一般就是顶部一个标题,底部是输入区域,中间显示消息列表. 微信的会话界面中,进入会话界面,有以下几点: 隐藏输入法 当消息数量能占满屏幕时,底部显示最后一条,依次往上排列 ...
- android 输入法弹出 标题栏不被顶出去
方案一:使用scrollview包裹并设置属性 android:fadeScrollbars="true" android:fillViewport=&qu ...
- 解决nbsp;输入法弹出时,将底部按…
在 Androidmannifest.xml相应 的activity中添加条属性: android:windowSoftInputMode="adjustPan"
- Android对弹出输入法界面影响app界面布局
Android中弹出输入法界面不影响app界面布局 默认情况下,输入法弹出的时候,原来的view会被挤扁.有些应用不想被挤,它们可以接受被输入法view覆盖在上面.这时候需要在AndroidManif ...
- android弹出输入框不影响布局,android 输入法弹出后,不影响activity原有布局
android输入法弹出框有时会遮挡原有的布局,使得输入法弹出框弹出时,原布局消失,现介绍android:windowSoftInputMode的一些属性: 在AndroidManifest.xml文 ...
- Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题
在Android开发中,比较头疼的问题就是EditText总是已启动就获得焦点并弹出输入框,感觉很是不爽.而且,因为输入框的弹出,导致屏幕布局获得改变,有些空间被挤压到一起,很是难看,所以,我就上网搜 ...
- android点击按钮弹出输入框,android 弹出框(输入框和选择框)
1.输入框: final EditText inputServer = new EditText(this); inputServer.setFilters(new InputFilter[]{new ...
最新文章
- [开发笔记]-jQuery获取radio选中项的值
- centos7离线安装boost
- 2021年春节联欢晚会第三次联排亮点多
- caffe模型weightsfeatureMap 可视化(c++)
- linux中tcp连接内核参数调优somaxconn
- webpack 独立打包 css 文件
- 基于Linux的USB 主/从设备之间通讯的三种方式
- php公交查询系统源代码,基于Smarty公交查询系统的设计与实现(PHP,MySQL)
- REVERSE-PRACTICE-JarvisOJ-2
- android 投票功能,腾讯新闻Android客户端更新 加入投票功能
- 程序员的毕业设计,时隔一年,仍感觉头秃
- Wordpress如何正确书写Robots.txt
- 卷积自编码器_GCLGP | 图卷积高斯过程
- Linux 命令行连接蓝牙
- 海康NVR设备上传人脸图片到人脸库
- 冲刺大厂每日算法面试题,动态规划21天——第七天
- s3cmd安装配置及基础命令
- 解决laytpl.js模板引擎插件加载模板后无法获取模板中的元素id等内容
- 保险保费基本计算规则
- linux美化桌面,Linux_设置动态壁纸来美化Ubuntu桌面,我们知道你想拥有一个有格调 - phpStudy...