记录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()

ScrollView中Spinner问题

问题ScrollView中添加Spinner
  • llayjun
  • llayjun
  • 2017年09月14日 15:23
  • 186

点击按钮后 屏幕会自动滚至顶部

问题: html页面较长,将页面滑动至底部,点击底部按钮,发现js点击事件处理完毕后,页面会自动滚至顶部原因:按钮是使用标签定义的解决方法:将按钮标签改为用标签定义...
  • xyr05288
  • xyr05288
  • 2016年06月16日 11:25
  • 439

记录一笔Android上面用PopupWindow+Spinner点击直接报错

最近公司需要些一个小功能,在界面上面弹出来一个PopupWindow,里面布局略复制,需要Spinner加上CheckBox等布局,等我写好布局,注入PopupWindow显示在界面上的时候还行,但是...
  • qq_32937131
  • qq_32937131
  • 2017年04月07日 15:50
  • 757

Android Spinner 放在PopupWindow 点击报错

PopupWindow中点击Spinner 显示Unable to add window android.view.ViewRoot is not valid is your activity run...
  • jing85432373
  • jing85432373
  • 2016年07月18日 16:52
  • 1262

关于Android PopupWindow中实用Spinner控件点击APP Crash情况整理!

Android开发中有用到PopupWindow的场景比较多,在POPWindow中实用spinner控件时,点击会出现崩溃的现象,需要研究研究,有大虾有解决过的可以指点一二!...
  • anqixing
  • anqixing
  • 2014年07月16日 12:37
  • 2543

下拉菜单Spinner用法 动态添加删除Spinner菜单项

复制过来不好看  原文地址  http://www.pocketdigi.com/20100810/20.html         Spinner是一种下接菜单,类似HTML中的sele...
  • zgf1991
  • zgf1991
  • 2012年01月07日 23:14
  • 954

在一个popupwindow上使用spinner,能显示,但当点击spinner时出现异常

在一个popupwindow上使用spinner,能显示,但当点击spinner时出现异常:android.view.WindowManager$BadTokenException: Unable t...
  • lwjlily
  • lwjlily
  • 2014年11月01日 11:53
  • 408

ListView点击事件后回滚到顶部

直接上代码: title.setOnClickListener(new View.OnClickListener() { @Override public ...
  • qq_34698126
  • qq_34698126
  • 2016年12月08日 14:13
  • 668

关于点击回到顶部之后,自动滑动滚动条返回顶部的方式

1、如果是要以非动画的形式展现:可以有 $("html , body").scrollTop(100); $(window).scrollTop(100); $(document).scro...
  • qq_32281471
  • qq_32281471
  • 2016年06月02日 15:42
  • 1414

页面跳到顶部的方法

页面跳到顶部的方法 一、使用锚点链接 毫无疑问,使用锚点链接是一种简单的返回顶部的功能实现。该实现主要在页面顶部放置一个指定名称的锚点链接,然后我们在页面下方放置一个返回到该锚点的链接,用...
  • tom0008668
  • tom0008668
  • 2017年04月11日 19:08
  • 254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:记录spinner/popupwindow点击选项时页面自动滚到顶部的解决办法
举报原因:
原因补充:

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