首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓: ScrollView内部的EditText :隐藏键盘产生奇怪的滚动

问题描述:

在安卓开发中,当一个ScrollView中包含一个EditText,并且在输入框获取焦点后弹出软键盘时,有时会出现奇怪的滚动现象。即使输入框内容较少,软键盘弹出后ScrollView会自动滚动到EditText的顶部,导致用户体验不佳。

解决方案:

这个问题可以通过以下几种方式来解决:

  1. 在AndroidManifest.xml文件中的activity标签中添加属性:android:windowSoftInputMode="adjustPan"。这样设置后,软键盘弹出时不会调整窗口大小,也就不会导致ScrollView滚动。
  2. 使用android:windowSoftInputMode="adjustResize"属性。这样设置后,软键盘弹出时会调整窗口大小,但是ScrollView会自动滚动到EditText的顶部。为了解决这个问题,可以在ScrollView中添加一个顶部的占位View,设置其高度为0dp,这样软键盘弹出时ScrollView不会滚动。
  3. 使用android:windowSoftInputMode="adjustNothing"属性。这样设置后,软键盘弹出时不会调整窗口大小,也不会导致ScrollView滚动。但是需要注意的是,这种方式可能会导致软键盘遮挡输入框,需要开发者自行处理。

推荐的腾讯云相关产品:

腾讯云提供了丰富的云计算产品和服务,以下是一些与安卓开发相关的产品:

  1. 腾讯移动推送(https://cloud.tencent.com/product/umeng_push):提供消息推送服务,可以用于在安卓应用中实现消息通知功能。
  2. 腾讯移动分析(https://cloud.tencent.com/product/app_analytics):提供应用数据分析服务,可以帮助开发者了解用户行为和应用性能,优化应用体验。
  3. 腾讯移动直播(https://cloud.tencent.com/product/mlvb):提供实时音视频互动直播服务,可以用于在安卓应用中实现音视频通话、直播等功能。

以上是一些解决ScrollView内部EditText隐藏键盘产生奇怪滚动问题的方法和腾讯云相关产品的介绍。希望对您有帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android UI开发中所遇到各种坑

1.软键盘隐藏问题 问题描述:Activity按下返回调用finish()方法后,界面已经销毁,但是软键盘依然还留在屏幕上,这让当前正在显示Activity没有输入框完全没法看,非常严重视觉影响。...还尝试过用基类找到所有edittext然后让它们失去焦点,隐藏键盘。...第二步,布局里加一个scrollview将你要被顶起视图放进这里,然后当软键盘显示时候,就会在scrollview滚动以获得空间进行显示软键盘。...<activity Android:windowSoftInputMode="adjustResize" 2.merge标签注意点 merge标签只有在根布局是FrameLayout时才有用,因为所有界面的根布局都是...布局选择 FrameLayout是最简单一种布局,所有界面的根布局都是FrameLayout,加载速度最快。

1.3K20

基础篇章:React Native之 ScrollView 讲解

keyboardDismissMode enum('none', 'interactive', 'on-drag') 当我滚动时候,是否隐藏键盘 none(默认值),拖拽时不隐藏键盘。...on-drag 当拖拽开始时候隐藏键盘。 interactive 软键盘伴随拖拽操作同步地消失,并且如果往上滑动会恢复键盘设备上不支持这个选项,会表现和none一样。...keyboardShouldPersistTaps 当此属性为false时候,在软键盘激活之后,点击焦点文本输入框以外地方,键盘就会隐藏。...onContentSizeChange function 该函数方法会在ScrollView内部滚动内容视图发生变化时调用。...在ScrollView视图之外视图(该视图overflow属性值必须要为hidden)会从被暂时移除,该设置可以提高滚动性能。

1.9K50

Android仿微信朋友圈点击评论自动定位到相关行功能

输入框产生 这里有一个关键地方,如何将EditText悬浮在键盘上,并且RecyclerView不会被挤上去。这里我们可以使用Dialog,同时在布局中要使用ScrollView来进行占位 <?...列表滚动 输入框也有了,这时候就差滚动了。我们可以通过smoothScrollBy来让RecyclerView按X或者Y轴进行滚动。那我们这里到底应该滚动多少距离才对呢?,咱们来计算一下吧 ?...图中红色部分为键盘展现之前某条信息评论区所在位置;蓝色部分为键盘,当键盘打开时候,我们需要将红色部分移动到黄色位置。...但是还有几个小问题,如果是点击最后一行的话,会因为滚动空间不足而不能实现相同效果,并且按返回键时候,键盘先消失,然后再按一次之后Dialog才消失。...针对第一个问题,我们直接添加一个空View作为列表最后一项即可,并且高度要等于输入框高度;第二个问题也很简单,就是监听键盘弹出与隐藏时View高度发生变化 data class BottomClass

1.5K60

挥别web移动端开发差异和经典坑

内部元素超出 body 即产生滚动,超出部分 body 隐藏。...无此特性。 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发对象是整个 webview 容器,容器自然会被拖动,剩下部分会成空白。...wx.onSocket断后再次发送链接IOS和差异 描述:小程序 wx.onSocket 链接 在手动断网后,IOS会不停发送请求再链接onSocketOpen,不会 ,解决方法,做一个定时器启动链接...时间:201908 部分机器点击键盘发送相同内容 描述:部分机,如oppo 快速点击键盘发送,会发出2条一样内容,防抖与节流均不生效; 时间:201907 微信公众号 在微信授权回调带#...URL跳转会出现空白 描述:手机,在微信授权回调函数中进行跳转至URL不能带有#,但#号可放置在结尾。

2.8K20

Android实现输入法弹出时把布局顶上去和登录按钮顶上去解决方法

)来约束,这是重点,我只说了一遍,还有就是LinearLayout内部布局尽量用wrap_content,即时要固定高度也要适当,调节调节就好了。...可以不用ScrollView而且输入框向上滚动时,整个布局不会向上滚动。...2,最后再提供一个思路,这个思路来自于“卷皮”,卷皮登录效果,他设计思路是,在点击EditText输入框时候,我第一个猜测是:得到了EditText输入焦点,或者是:猜测是监听到键盘弹出焦点之后...,卷皮顶上那个背景就把它慢慢变小隐藏起来,导致下面的两个输入框滚动到顶部去了,就方便用户输入了。.../3 } /** * 禁止键盘弹起时候可以滚动 */ mScrollView.setOnTouchListener(new View.OnTouchListener() { @Override

3.7K20

Android富文本开发

如果只是对受到影响view添加动画,可以通过设置view高度使之显示和隐藏,还可以利用ScrollView通过滚动隐藏和显示动画,但其他受影响view则比较难处理,最终选择布局动画LayoutTransition...stateUnchanged-不改变状态:当前界面软键盘状态由上个界面软键盘状态决定; stateHidden-隐藏状态:进入页面,无论是否有输入需求,软键盘隐藏,但是如果跳转到下一个页面软键盘是展示...stateAlwaysHidden-总是隐藏状态:当设置该状态时,软键盘总是被隐藏,和stateHidden不同是,当我们跳转到下个界面,如果下个页面的软键盘是显示,而我们再次回来时候,软键盘就会隐藏起来...stateAlwaysVisible-总是显示状态:当设置为这个状态时,软键盘总是可见,和stateVisible不同是,当我们跳转到下个界面,如果下个页面软键盘隐藏,而我们再次回来时候,软键盘就会显示出来...adjustResize-调整模式:当软键盘显示时候,当前界面会自动重绘,会被压缩,软键盘消失之后,界面恢复正常(正常布局,非scrollView父布局);当父布局是scrollView时候,软键盘弹出

8.4K20

【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上兼容问题 | 触摸获取焦点 | 按键获取焦点 )

Android TV 开发系列文章目录 【Android TV 开发】电视调试 ( 开启网络远程调试 ) 【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上兼容问题...; 运行正常情况 : 在 Google 提供模拟器上运行时 , 正常运行 , ScrollView 子组件中可以正常获取焦点 ; 运行失败情况 : 但是在真实国产电视盒子中 , ScrollView...控制界面需要关注该操作 ; 在 xml 布局文件中 , 在组件节点上设置如下属性 , 取值 true 或 false ; android:focusable="true" 按键获取焦点 一般是手机自带物理键盘...等默认没有触摸焦点 , 因为这些组件可能用于点击事件 , 如果这些组件可获取焦点 , 用户点击这些组件后 , 要先获取焦点 , 触发 OnFocusChangeListener 回调 , 获取焦点后才能进行点击 ; EditText...默认自动获取焦点 , 并且进入界面抢先获取焦点 , 该组件需要有光标 , 并且弹出软键盘 ;

3.1K40

Android ScrollView实现向上滑动控件顶部悬浮效果

【上滑停靠顶端悬浮框】里实现方法是使用两个控件,滑动时,监听ScrollView滚动Y值,从而通过对两个控件显示隐藏来实现控件顶部悬浮。...但是实际应用场景中,有可能需要悬浮控件里面的内容是比较多,如果通过显示隐藏方式来实现的话,操作控件里内容时,需要重复定义两套变量,对控件里内容进行修改时也是要操作再次,非常麻烦。...一、首先让ScrollView实现滚动监听: package com.willen.topFloatDemo; import android.content.Context; import android.os.Handler...; /** * ScrollView并没有实现滚动监听,所以我们必须自行实现对ScrollView监听, * 我们很自然想到在onTouchEvent()方法中实现对滚动Y轴进行监听...* ScrollView滚动Y值进行监听 */ public class MyScrollView extends ScrollView { private OnScrollListener

1.5K20

5种方法完美解决android软键盘挡住输入框方法详解

假设原始界面是一个LinearLayout包含若干EditText,如下图所示,在分别使用两种属性时表现。 ?...即使当前输入框下方也有输入框,在键盘显示情况下,也可以通过上下滑动界面来输入,而不用先隐藏键盘,点击下方输入框,再显示键盘输入。...,说明键盘隐藏了,把界面下移,移回到原有高度 main.scrollTo(0, 0); } } }); } } 2、实现原理: 此方法通过监听Activity最外层布局控件来检测软键盘是否弹出...方法四:适配键盘高度变化情况,当键盘弹起时,让界面整体上移;键盘收起,让界面整体下移 此方法主要是通过在需要移动控件外套一层scrollView,同时最布局最外层使用自定义view监听键盘弹出状态,计算键盘高度...,在键盘变化时调用scrollViewsmoothScrollTo去滚动界面 /** * 监听键盘状态,布局有变化时,靠scrollView滚动界面 */ public void addLayoutListener

20.6K31

Android 类似UC浏览器效果:向上滑动地址栏隐藏功能

思路要求 ScrollView 嵌套 地址栏 和 WebView 手指滑屏向下滚动(网页向上),如果网页有滚动条,首先把 地址栏 滚动到消失,然后 WebView 才开始滚动; 手指滑屏向上滚动(网页向下...),如果地址栏隐藏,那么 地址栏 首先慢慢显示,然后 WebView 才开始滚动。...把 ScrollView 设置为 WebView 一个变量,在 WebView onInterceptTouchEvent 方法里检测到 MotionEvent.ACTION_DOWN 事件后中断事件...GestureDetector 逻辑分发 – 决定是滑动webview还是改变webview高度从而改变ScrollView滚动范围(ScrollView总是滚动到最底) WebView 重画之后检测当前地址栏偏移...); } }); } } } 总结 以上所述是小编给大家介绍Android 类似UC浏览器效果:向上滑动地址栏隐藏功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

1.4K20

Android开发常用知识点

设置内部充满全屏 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent...软键盘状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适状态或依赖于主题设置。...stateHidden 当用户选择该Activity时,软键盘隐藏——也就是说,当用户确定导航到该Activity时,不管他离开Activity键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...系统将自动选择这些模式中一种主要依赖于是否窗口内容有任何布局视图能够滚动他们内容。如果有这样一个视图,这个窗口将调整大小,这样假设可以使滚动窗口内容在一个较小区域中可见

2.5K10

微信小程序解决ios页面上推问题

相信大家写原生小程序都遇到过一个问题,当输入框聚焦键盘弹起时,页面会自动上推,使得输入框刚好位于键盘之上,在中推动只是内容,但在ios中,推动是整个页面,导致导航栏被推出屏幕外,如下:图片针对这个问题...另外,这里可以根据实际情况来做个判断,一般情况下,我们可以直接使用原生推动,即adjust-position为true,ios使用手动上推。...方案一键盘事件触发多次,可能每次获取到高度和元素bottom不同,从而导致多次滚动,这里可以使用节流获取到第一次数据即可大家根据自己需求选择使用哪一种方案三、疑难杂症在一些特殊场景下,还会有各种奇奇怪问题...textarea绑定键盘事件,input会触发该textarea键盘事件解决1:使用方案二解决2:某些特殊情况,可以将textarea隐藏,不要在键盘弹起时让input和textarea同时存在页面中...,那么input键盘事件触发后,可能依然会触发textarea事件,但这个时候由于textarea隐藏了,获取键盘高度为0,所以还是会以input键盘事件为准4、问题:bindkeyboardheightchange

4.9K30

Android开源库:手把手教你实现一个简单好用搜索框(含历史搜索记录)

点击返回按键后接口回调方法 SearchListView.java 解决ListView & ScrollView嵌套冲突 search_layout.xml 搜索框布局 ---- 6....对于含有一键清空功能 & 更多自定义样式EditText自定义控件具体请看我另外一个简单 & 好用开源组件:Android自定义EditText:手把手教你做一款含一键删除&自定义样式SuperEditText...* 调用时刻:点击键盘搜索键时 */ et_search.setOnKeyListener(new View.OnKeyListener() {...源码分析 /** * 监听输入键盘更换后搜索按键 * 调用时刻:点击键盘搜索键时 */ et_search.setOnKeyListener(new View.OnKeyListener...下一篇文章我将继续进行一些有趣自定义View实例讲解,有兴趣可以继续关注Carson_Ho开发笔记 更多简单好用开源库:简单 & 好用开源组件: 自定义EditText:手把手教你做一款含一键删除

2.7K10

收藏 | 移动端H5开发常用技巧总结

name="format-detection" content="telephone=no" /> 开启识别 123456 邮箱识别(Android) 上会对符合邮箱格式字符串进行识别...内部元素超出 body 即产生滚动,超出部分 body 隐藏。...所以苹果系统和系统通常都会禁止自动播放和使用 JS 触发播放,必须由用户来触发才可以播放。...keyup、keydown、等支持不是很好, 用 input 监听键盘 keyup 事件,在手机浏览器中没有问题,但是在 ios 手机浏览器中用输入法输入之后,并未立刻相应 keyup 事件 IOS12...软键盘唤起后,页面的 fixed 元素将失效,变成了 absolute,所以当页面超过一屏且滚动时,失效 fixed 元素就会跟随滚动了。

4.2K20
领券