记录spinner/popupwindow点击选项时页面自动滚到顶部的解决办法

原创 2017年04月10日 17:41:16

页面是个有很多EditText和Spinner的表单录入页面 由于跨页所以用ScrollView嵌套

当选择Spinner的下拉项时 Spinner下拉面板正常关闭同时页面滚动到顶部 很影响用户使用 这样肯定不行

开始以为当spinner在scrollview时 存在android版本兼容问题

于是改成了popupwindow 比spinner麻烦好多 页面有多个EditText用于弹出popupwindow展示不同的下拉数据 点击TextView要记录当前的EditText当点击popupwindow的列表项关闭popupwindow时要取到数据手动调用之前记录的EditText的setttext方法

而用spinner 这一切都是自动的

前面都是废话 结果用popupwindow实现完后还是一样 会自动滚动到顶部 这时才仔细分析问题原因 

原来是在点击EditText(设置了clickable=true;focusable=false)弹出spinner/popupwindow时焦点在页面外的EditText上 ,于是关闭spinner/popupwindow时页面自动滚动到获取焦点的EditText 

解决思路是 在focusable=false的EditText的点击事件里去掉焦点时不让其他的EditText自动获取焦点

最初的解决方案是这样的

if (getCurrentFocus()!=null) {
   getCurrentFocus().clearFocus();
}

popupwindow试了没问题 但对spinner不起作用 于是搜clearFocus不起作用 最终解决方案是这样的

给表单布局容器设置

android:focusableInTouchMode="true"
spinner.setOnItemSelectedListener 在onItemSelectedListener的onItemSelected方法内让表单容器requestFocus()

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

WebBrowser自动点击

当点击onBackpress方法或者onKeyDown方法时出现不能响应的问题解决办法

一般来讲,当我们点击手机上的back键之后,会直接调用activity的onbackpress()方法,或者我们也可以通过这样来进行捕捉点击事件 @Override public ...

在WIN7 环境里PB里面添加控件OLE,选择insertcontrol选项卡就会报错自动关闭解决办法

(说明:在网上搜了一些办法,都没解决,一是每个电脑不同,再就是权限不同,总结个人电脑win7下不同管理员账户登陆时的解决方案,本人电脑上PB9和PB10两个都已安装) 试试这个方法: 原理分析 ...

使用PopupWindow 实现Spinner 的点击效果

在最近我们的项目中有一个小的地方使用到了Spinner,但是android 原生的样式很丑,本来打算在网上找找有没有办法直接修改样式能完成修改最后没有找到合适的办法,在网上看到有有人使用自定义Spin...

使用选项卡TabWidget与TabHost实现底部或者顶部四个分类按钮 点击切换对应的fragment

首先作为一名菜鸟,尤其是记忆不好菜鸟,主动手写笔记记忆一些东西还是很有必要的,至少对于我而言。 言归正传,首先当大家看到这个需求,会想到布局中的选项卡控件,TabHost与TabWidget,其中这两...

解决JPages分页插件,点击下一页不会自动回到顶部的bug

最近在做一个手机端的失物招领系统,用到了JPages这个分页插件。 先简单介绍一下JPages: jPages是一个客户端分页插件,它比其他大多数插件多了很多功能,比如自动翻页,滚动浏览,显示延...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)