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

当永恒的软键盘问题遇到Flutter

移动端开发的同学可能或多或少都遇到过软键盘的问题。不是被遮住布局就是布局顶不上去。那么使用 Flutter 的时候,遇到软键盘出来的时候又会遇到什么问题呢?...大概意思就是这个属性 true 的时候,布局会根据键盘高度去调整,避免自己被键盘挡住。那么是 false 的时候,就不会调整了。像我的这种在底部的输入框,就直接被键盘遮住了。...解决思路 那么既然底部对话框里面有输入框的时候,resize布局和不resize布局都不合适的时候,那么就只能考虑调整对话框自己的位置了。...也就是,当键盘没弹出的时候,输入框在下面,键盘出来的时候,输入框在键盘的上方。底部对话框再怎么样,也不能被输入框顶到屏幕外面去吧。...至于怎么监听键盘呢,其实 Google 一下也很简单,套用一下别人的思路: 界面的布局大小发生变化的时候,键盘高度不是0,我们就认为键盘弹出,反之键盘已经被收回。 至于如何监听界面大小变化了呢?

3.7K30

自适应软键盘的Dialog以及监听软键盘弹起

键盘上方具体位置显示引导 这个需求中有两个地方需要考虑:1. Dialog的布局要适应软键盘的弹起2. 软键盘弹起和收下的时候都会有不同的引导,所以要在Dialog上监听软键盘的弹起。...我们知道,在Activity中如果要让布局不被软键盘遮挡,方法一般是在清单文件中配置windowSoftInputMode属性, windowSoftInputMode是Android1.5以后的一个新特性...,通常由系统自行决定是隐藏还是显示 adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间 adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分...二,基于Dialog监听软键盘的弹起和收下: 其实看完第一个需求,我们可能已经猜想到,软键盘也是基于当前窗口的,它的弹起和收下肯定会引起当前窗口布局的属性发生变化,所以解决思路就有了:监听当前布局的变化...我这里是比较布局坐标中的下坐标的,因为如果键盘弹起的话,布局的下坐标肯定会变小。

3.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 底部按钮被软键盘顶起问题解决

    也不管当前界面有没有输入的需求,就是不显示软键盘。...adjustResize 调整大小状态,这个属性表示 Activity 的主窗口总是会被调整大小来保证软键盘的显示空间。...一般来说,我们的布局分为两种 底部按钮被滚动布局包裹 底部按钮不被滚动布局包裹 第一种布局是不会出现软键盘把底部按钮顶起的情况,首先软键盘的打开实际上是一个 Dialog,而我们在配置文件内的 adjustResize...从大的方向来说可以通过修改 windowSoftInputMode 来设置布局对软键盘的处理方式,当然也可以通过监听软键盘,这种修改的细粒度更小。...,系统会通过布局的移动,来保证用户要进行输入的输入框在用户的视线范围内。

    2.2K20

    关闭软键盘

    Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0); } Activity中设置: Android...它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间, 或是否窗口上的内容得到屏幕上当前的焦点是可见的。...系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。 如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。...“adjustResize”, (压缩模式) 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。...“adjustPan”] > (平移模式:当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时, 窗口就会进行平移。也就是说,该模式始终是保持输入框为可见 . . .

    1.4K40

    android基础

    的缩写…)的布局。...android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里 android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题...这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”...【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间 【I】adjustPan...:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分 下面是RelativeLayout各个属性 android:layout_above=”@id/xxx” –将控件置于给定

    77920

    Android 软键盘的那些事

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。...】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分(软键盘会遮挡屏幕) android:windowSoftInputMode 活动的主窗口如何与包含屏幕上的软键盘窗...系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。..."adjustResize" 该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间 "adjustPan" 该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。...相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。

    2K10

    Android开发笔记(三十六)展示类控件

    聊天室窗口的高度是固定的,新的文字消息总是加入到窗口末尾,同时窗口内部的文本整体向上滚动,而窗口的大小保持不变、位置也保持不变。...在XML布局文件中实现时,可设置如下属性: drawableTop : 指定文本上方的图形。 drawableBottom : 指定文本下方的图形。...EditText EditText是文本输入框,与输入有关的属性说明如下: 在XML布局文件中指定: inputType : 指定输入的文本类型。...该功能有两种实现方式: 方式一:在布局文件的EditText节点中加入singleLine属性,但该方式只在视觉上起作用,真正的字符串还是带有回车换行符; android:singleLine="true...EditText还有一个需要特殊处理的地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框的软键盘就要自动消失,可惜Android不是这样处理。

    1.5K30

    AndroidMainifest标签说明2——<activity>

    “splitActionBarWhenNarrow”加入栏位于屏幕的底部。在动作条显示操作项,当约束的水平空间。而不是少数出如今屏幕上方操作栏中的行动项目。操作栏被分成顶部导航部分和操作项的底部栏。...“stateVisible” 可见的,当activity激活的时候 “stateAlwaysVisible” 总是可见的 “adjustUnspecified” 未指定活动的主窗体的大小是否为软键盘...这些模式的系统会自己主动选择一个取决于窗体的内容有不论什么布局视图,能够滚动内容。如果有这样一个观点,窗体大小,如果滚动能够使全部可见的窗体的内容在一个较小的区域。...“adjustResize” 活动的主窗体总是会去调整大小使软键盘在窗体中 “adjustPan” 活动的主窗体不是软键盘调整大小以腾出空间。...相反,窗体自己主动安排的内容,当前的焦点永远不会被键盘获得,用户能够看到他们打字。比调整这一般是不可取,因为用户可能需要关闭的形式软键盘和阴影部分和交互。

    1.5K00

    Android 仿UC浏览器详情页评论弹框效果

    大概就这种效果 额,突然发现UC被我卸载了,这个是QQ浏览器的效果,不过都一样,如果当前页面不是全屏的话,把根布局设为相对布局,然后设置评论布局为处于底部,这样在点击评论时弹开键盘会触发布局重绘,底部的评论也会处于软键盘的上方...,键盘消息,布局下移,但是我们要说的是全屏的情况下我们如何处理。...首先要监听到软件盘弹起,然后再设置评论的popupWindow import android.app.Activity; import android.graphics.Rect; import android.support.v4...popupWindow里的配置,要不然popupWindow会被软键盘遮挡。...@Override public void dismiss() { super.dismiss(); // 评论框消息的同时把软键盘关闭 KeyBoardUtils.closeKeybord

    1.3K30

    解决Android软键盘在全屏下设置adjustResize无效的问题

    输入法遮挡问题 解决输入法遮挡的问题 基本上有两种 adjustResize + ScrollView adjustPan adjustPan会把页面整体上推 adjustResize则是缩放可调整页面...即添加: android:windowSoftInputMode="adjustResize" 但是在全屏模式下,即使将activity的windowSoftInputMode的属性设置为:adjustResize...int usableHeightPrevious; private FrameLayout.LayoutParams frameLayoutParams; //为适应华为小米等手机键盘上方出现黑条或不适配...(android.R.id.content); //2、获取到setContentView放进去的View mChildOfContent = content.getChildAt...(); } // 获取界面可用高度,如果软键盘弹起后,Activity的xml布局可用高度需要减去键盘高度 private void possiblyResizeChildOfContent

    7K32

    Android爬坑之旅:软键盘挡住输入框问题的终极解决方案

    而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑——来来来,我们慢慢看。 入门篇 ?...adjustPan是把整个界面向上平移,使输入框露出,不会改变界面的布局; adjustResize则是重新计算弹出软键盘之后的界面大小,相当于是用更少的界面区域去显示内容,输入框一般自然也就在内了。...来自我厂App的某个使用WebView的全屏模式Activity页面,从左到右分别是:没有软键盘的样式、软键盘挡住输入框的效果、以及使用AndroidBug5497Workaround之后的最终效果。...这里所注册的addOnGlobalLayoutListener,就是会在当前的View树的全局布局(GlobalLayout)发生变化、或者其中的View可视状态有变化时,进行通知回调。...OK,以上就是一段关于『软键盘挡住输入框』的爬坑之旅。 另外,希望这篇文章能对你有所帮助。

    4.9K20

    Android开发笔记(一百四十八)自定义输入法软键盘

    手机上输入文字,都是通过系统自带的软键盘,这个软键盘可以是Android自带的,也可以是第三方软键盘如搜狗输入法。...多数情况下面,系统自带的软键盘已经够用了,可是总有少数情况,系统软键盘无法满足开发者的要求,比如以下几个需求,系统软键盘就无法处理: 1、像手机号码与支付密码,只需要输入数字,连标点符号都不需要。...然而系统软键盘即使切换到123数字模式,依旧显示包括标点符号在内的冗余按键。 2、系统软键盘固定在屏幕下方弹出,无法做为控件嵌入到页面布局中,更无法指定软键盘的显示位置。...基于以上情况,要想满足这些定制需求,只能对输入法自定义软键盘了。全数字的软键盘界面倒也简单,下面先来个数字键盘的效果图。 ?...2、自定义控件的主要工作是书写自定义的控件类,自定义软键盘也不例外,有了自定义的控件类,才能处理十个数字键的按键动作,才能把软键盘做为普通的控件嵌入到其它布局文件中。

    2.6K30

    响应视窗属性动画 | 让您的软键盘动起来 (二)

    为了展示可以实现的效果,您可以查看下面这个来自同一个应用的示例,左边的是运行在 Android 10 上,而右边的是运行在 Android 11 上 (动画效果是实际速度的 20%): ?...如上动图所示: 在 Android 10 以及以前版本的设备上,当用户点击文字输入框来输入回复,软键盘会带着动画效果移动到预期的位置,但是应用在两个状态间的动画很突兀。...这一次,当用户点击文字输入框的时候,应用跟随着软键盘一起移动并且创造了一个更流畅的体验。 所以您如何才能在您的应用中添加这种体验呢?这都依赖新 API 的支持......由于系统保证了任何由视窗属性变更导致的重新布局都会在 onStart() 的同一帧被调用,所以用户此时不会看到闪动。 ?...这是因为我们在移动视图的过程中,视图本身可能会因为 OnApplyWindowInsetsListener 导致的布局改变而被调整大小。

    74320

    Android开发常用的知识点

    stateVisible 当用户导航到Activity主窗口时,软键盘是可见的。不过当用户离开一个Activity而导致另一个被覆盖的Activity显示出来时,软键盘会使用默认的设置。...adjustUnspecified 这个是软件盘行为默认的设置。它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。...系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。...adjustResize 该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间 adjustPan 该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。...相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。

    2.6K10

    Android富文本开发

    ,不主动弹软键盘) 在第一个输入框的最直接父布局加入:android:focusable="true";android:focusableInTouchMode="true" (效果:软键盘不弹出,光标不显示...,其他输入框也不获取焦点,ps非直接父布局没有效果) android:windowSoftInputMode="stateAlwaysHidden" (效果:软键盘不弹出,光标显示在第一个输入框中) 需求...2:editText不获取焦点,当然软键盘不会主动弹出(光标也不显示) 在第一个输入框的最直接父布局加入:android:focusable="true";android:focusableInTouchMode...adjustResize-调整模式:当软键盘显示的时候,当前界面会自动重绘,会被压缩,软键盘消失之后,界面恢复正常(正常布局,非scrollView父布局);当父布局是scrollView的时候,软键盘弹出...,会将布局顶起(保证输入框不被遮挡),不压缩,而且可以软键盘不消失的情况下,手动滑出被遮挡的布局; adjustPan-默认模式:软键盘弹出,软键盘会遮挡屏幕下半部分布局,当输入框在屏幕下方布局,软键盘弹起

    8.5K20
    领券