Android界面隐藏软键盘的探索(兼findViewById返回null解决办法)
最近写的APP,老师说我的登陆界面虽然有ScrollView滑动,但用户体验不太好,因为软键盘会挡住输入框或登录button(小米Pad,横屏,当指定只能输入数字时没找到关闭系统自带键盘的下箭头)。
虽然我觉得ScrollView就够用了,能找到登录按钮……
在默默吐槽了下连搜狗都有的功能小米没有后,上网上搜索了下解决办法。
首先,当activity加载完成后,屏蔽EditText自动弹出软键盘,需要一句话:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
当然需要在setContentView后使用;
接着,参照网上广泛例子,给根布局id并允许点击:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/user_info_add"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white_color"
android:clickable="true"
android:orientation="vertical"> <!--中间省略 --> </LinearLayout>
然后在对应的Activity里加入响应代码,响应点击:
ll_login = (LinearLayout)findViewById(R.id.ll_activity_login);
/*点击空白区域关闭软键盘*/
ll_login.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ll_activity_login:
InputMethodManager imm2 = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm2.hideSoftInputFromWindow(v.getWindowToken(), 0);
break;
} }
});
想着该大功告成了吧,点击却发现软键盘无法关闭!
再查查看,问题出在ScrollView,他会屏蔽这种点击事件。解决办法不是没有,但找到的几个都对ScrollView和内部组件点击操作有一定影响( ̄_ ̄|||)
既然软键盘都能隐藏了,要你何用,删掉(╯‵□′)╯︵┻━┻
最后测试一下,没问题啦,一切正常~
PS:软键盘其实不难,但架不住千奇百怪的ERROR:
①findViewById这句话一直运行不通过,不是他下面,是他不通过:
解决办法:网上说的,IDE问题(eclipse……哎):Project→Clean;
②findViewById运行了,他的下一句setOnClickListener运行不通过:
解决办法:Debug一下,发现ll_login的值竟然是null,网上搜索下,clean过了无视,setContentView位置在前没错,View也是当前的view……
有人说忘记xml里定义id,我之前刚做完……等等!我写的是手机平板公用的app,横竖屏都定义了,我好像只改了port没改land里的……
改完,debug看有值了,一切正常,哭瞎……这错误卡了我n小时

Android界面隐藏软键盘的探索(兼findViewById返回null解决办法)的更多相关文章
- HTML 在安卓手机端软键盘弹出顶起页面布局的解决办法
$('body').height($('body')[0].clientHeight); 以上是背景即BODY被顶起的解决办法. 如果是footer被顶起,则可以用判断解决, $('input').f ...
- Android中点击隐藏软键盘最佳方法——Android开发之路4
Android中点击隐藏软键盘最佳方法 实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEve ...
- Android点击空白处,隐藏软键盘
在做登陆或者注册的时候,软键盘经常可能会挡住一些界面.我们需要在输入完成之后隐藏软键盘. 在我们点击空白处或者非EditText的地方来隐藏软键盘. public class HomeActivity ...
- Android隐藏软键盘
1,用java代码隐藏: /**隐藏软键盘**/ View view = getWindow().peekDecorView(); if (view != null) { ...
- Android开发,在Activity启动时,默认隐藏软键盘。和遮挡Edittext时的处理
在Activity启动时,默认隐藏软键盘: 在AndroidManifest.xml中找到你得Activity ,为它添加属性: android:windowSoftInputMode="s ...
- Android隐藏软键盘收回软键盘
代码改变世界 Android隐藏软键盘收回软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPU ...
- android 开启或者隐藏软键盘
一. 隐藏软键盘方法一(注:此方法本人使用时发现isActivie()失效,建议还是用其他方法..): InputMethodManager imm = (InputMethodManager)get ...
- Android 隐藏软键盘
隐藏软键盘 public void hideSoftInputView() { InputMethodManager manager = ((InputMethodManager) this.getS ...
- Android 调出和隐藏软键盘
1.弹出软键盘 public static void showSoftInputMode(Context context,View windowToken) { final InputMethodMa ...
随机推荐
- Loadrunner中web_find和web_reg_find函数的使用与区别
总结一下Loadrunner中的检查点函数,主要介绍两个函数:web_find()和web_reg_find():这两个函数均用于内容的查找,但两者也有本质的区别,具体介绍如下:一.web_find( ...
- Comparable与Comparator的区别
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 一.Com ...
- 12款免费的响应式 WordPress 主题下载
响应式和现代设计风格的多用途 WordPress 主题能够非常灵活的适应所有设备.而高级主题能够更轻松定制,您可以从主题选项中禁用/启用响应模式.多用途的响应式设计的主题是最适合杂志网站,博客网站,想 ...
- CSS常用标签
CSS常用标签 一 CSS文字属性 color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-size : 9pt; / ...
- angular源码分析:angular中各种常用函数,比较省代码的各种小技巧
angular的工具函数 在angular的API文档中,在最前面就是讲的就是angular的工具函数,下面列出来 angular.bind //用户将函数和对象绑定在一起,返回一个新的函数 angu ...
- windows 8安装wp8之后鼠标没反应了
笔记本是windows 8 系统,昨天安装了windows phone 8.0 SDK 之后,发现无线鼠标没反应了,但是触摸屏鼠标可以正常移动!真是奇怪,旁边同学也是安装了这个sdk,但没出什么问题! ...
- 自定义View之onMeasure()
1.自定义View之onMeasure() 2.onMeasure实例分析
- Android属性之build.prop生成过程分析
Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/pro ...
- 【代码笔记】iOS-旋转的图片
一,效果图. 二,工程图. 三,代码. AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder ...
- C语言中的运算符
1. 在C语言中运算符包括:算术运算符.关系运算符.赋值运算符.逻辑运算符 2.用运算符把变量.常量连接起来的式子就是表达式 3.我们阅读一个表达式,从表达式的功能和表达式的值来看 4. 算术运算符和 ...